Add manifest to allow _writer to elevate privileges.
authorcah <cah@ableton.com>
Tue, 24 Mar 2020 12:42:57 +0000 (13:42 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 28 Mar 2020 18:47:28 +0000 (19:47 +0100)
platform/windows/dcpomatic2_dist_writer.exe.manifest [new file with mode: 0644]
platform/windows/dcpomatic_dist_writer.rc [new file with mode: 0644]
platform/windows/wscript
src/tools/wscript

diff --git a/platform/windows/dcpomatic2_dist_writer.exe.manifest b/platform/windows/dcpomatic2_dist_writer.exe.manifest
new file mode 100644 (file)
index 0000000..2c861c7
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
+    <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="dcpomatic2_dist_writer" type="win32"/> \r
+    <description>DCP-o-matic Disk Writer</description> \r
+    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">\r
+           <security>\r
+                   <requestedPrivileges>\r
+                           <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>\r
+                   </requestedPrivileges>\r
+           </security>\r
+    </trustInfo>\r
+</assembly>\r
diff --git a/platform/windows/dcpomatic_dist_writer.rc b/platform/windows/dcpomatic_dist_writer.rc
new file mode 100644 (file)
index 0000000..3e30d78
--- /dev/null
@@ -0,0 +1,2 @@
+#include "winuser.h"\r
+1 RT_MANIFEST "dcpomatic2_dist_writer.exe.manifest"\r
index d7b754fb2a015c13b68217ab1f8b2e67bbb585b8..6af3db9c1cbd6b4d4f96ba89260dfd833924679a 100644 (file)
@@ -335,6 +335,7 @@ File "%binaries%/src/tools/dcpomatic2_kdm.exe"
 File "%binaries%/src/tools/dcpomatic2_kdm_cli.exe"
 File "%binaries%/src/tools/dcpomatic2_dist.exe"
 File "%binaries%/src/tools/dcpomatic2_dist_writer.exe"
+File "%resources%/dcpomatic2_dist_writer.exe.manifest"
     """, file=f)
 
     print("""
index 8ab5831124ae607d1b7468164908e41e01fd3fe0..33eb8f192ac1d160bb3d1582de9c7644119bf0c6 100644 (file)
@@ -56,6 +56,8 @@ def build(bld):
         obj.includes = ['..']
         obj.use    = ['libdcpomatic2']
         obj.source = '%s.cc' % t
+        if bld.env.TARGET_WINDOWS and t == 'dcpomatic_dist_writer':
+            obj.source += ' ../../platform/windows/%s.rc' % t
         obj.target = t.replace('dcpomatic', 'dcpomatic2').replace('swaroop_', '')
         if t == 'server_test':
             obj.install_path = None