diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-04-27 17:29:38 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-04-28 20:20:56 +0200 |
| commit | e97b5dcf3e8a8b7756f06cc531188e894fd73a61 (patch) | |
| tree | 8816a4a574483b87a57de487b8ee1cf1a5129e3a | |
| parent | a7b389a2e2ddbb41c15a0a87392c48ca4ded3bca (diff) | |
Build .rc files on the fly.
| -rw-r--r-- | platform/windows/dcpomatic.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic2_disk_writer.exe.manifest | 12 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_batch.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_combiner.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_disk.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_disk_writer.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_editor.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_kdm.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_player.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_playlist.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_server.rc | 2 | ||||
| -rw-r--r-- | platform/windows/dcpomatic_verifier.rc | 2 | ||||
| -rw-r--r-- | platform/windows/wscript | 2 | ||||
| -rw-r--r-- | src/tools/wscript | 34 |
14 files changed, 33 insertions, 37 deletions
diff --git a/platform/windows/dcpomatic.rc b/platform/windows/dcpomatic.rc deleted file mode 100644 index e58e81b7f..000000000 --- a/platform/windows/dcpomatic.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic2_disk_writer.exe.manifest b/platform/windows/dcpomatic2_disk_writer.exe.manifest deleted file mode 100644 index 7d922a0db..000000000 --- a/platform/windows/dcpomatic2_disk_writer.exe.manifest +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="dcpomatic2_disk_writer" type="win32"/>
- <description>DCP-o-matic Disk Writer</description>
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
- <security>
- <requestedPrivileges>
- <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
- </requestedPrivileges>
- </security>
- </trustInfo>
-</assembly>
diff --git a/platform/windows/dcpomatic_batch.rc b/platform/windows/dcpomatic_batch.rc deleted file mode 100644 index 9aea38110..000000000 --- a/platform/windows/dcpomatic_batch.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_batch.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_combiner.rc b/platform/windows/dcpomatic_combiner.rc deleted file mode 100644 index 700d85a8b..000000000 --- a/platform/windows/dcpomatic_combiner.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_combiner.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_disk.rc b/platform/windows/dcpomatic_disk.rc deleted file mode 100644 index eac76a0d5..000000000 --- a/platform/windows/dcpomatic_disk.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_disk.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_disk_writer.rc b/platform/windows/dcpomatic_disk_writer.rc deleted file mode 100644 index 70138ed12..000000000 --- a/platform/windows/dcpomatic_disk_writer.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "winuser.h"
-1 RT_MANIFEST "dcpomatic2_disk_writer.exe.manifest"
diff --git a/platform/windows/dcpomatic_editor.rc b/platform/windows/dcpomatic_editor.rc deleted file mode 100644 index 865590f51..000000000 --- a/platform/windows/dcpomatic_editor.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_editor.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_kdm.rc b/platform/windows/dcpomatic_kdm.rc deleted file mode 100644 index 057a42c01..000000000 --- a/platform/windows/dcpomatic_kdm.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_kdm.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_player.rc b/platform/windows/dcpomatic_player.rc deleted file mode 100644 index dd5e0d1fe..000000000 --- a/platform/windows/dcpomatic_player.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_player.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_playlist.rc b/platform/windows/dcpomatic_playlist.rc deleted file mode 100644 index 2bb457371..000000000 --- a/platform/windows/dcpomatic_playlist.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_playlist.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_server.rc b/platform/windows/dcpomatic_server.rc deleted file mode 100644 index fb9f4e811..000000000 --- a/platform/windows/dcpomatic_server.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_server.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/dcpomatic_verifier.rc b/platform/windows/dcpomatic_verifier.rc deleted file mode 100644 index 8f1ba073f..000000000 --- a/platform/windows/dcpomatic_verifier.rc +++ /dev/null @@ -1,2 +0,0 @@ -id ICON "../../graphics/windows/dcpomatic2_verifier.ico" -#include "wx-3.1/wx/msw/wx.rc" diff --git a/platform/windows/wscript b/platform/windows/wscript index e0da35ed1..9ddffca45 100644 --- a/platform/windows/wscript +++ b/platform/windows/wscript @@ -418,7 +418,7 @@ SectionEnd if disk: print(""" File "%binaries%/src/tools/dcpomatic2_disk_writer.exe" -File "%resources%/dcpomatic2_disk_writer.exe.manifest" +File "%binaries%/src/tools/dcpomatic2_disk_writer.exe.manifest" """, file=f) suffix = '_debug.bat' if debug else '.exe' diff --git a/src/tools/wscript b/src/tools/wscript index 65e4d0e4c..d23b6e161 100644 --- a/src/tools/wscript +++ b/src/tools/wscript @@ -22,6 +22,31 @@ import glob from waflib import Logs import i18n +def make_rc(tool, icon): + filename = f'build/src/tools/{tool}.rc' + with open(filename, 'w') as rc: + if tool == 'dcpomatic_disk_writer': + print('#include "winuser.h"', file=rc) + print('1 RT_MANIFEST "dcpomatic2_disk_writer.exe.manifest"', file=rc) + with open("build/src/tools/dcpomatic2_disk_writer.exe.manifest", "w") as manifest: + print(""" +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="dcpomatic2_disk_writer" type="win32"/> + <description>DCP-o-matic Disk Writer</description> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> + </requestedPrivileges> + </security> + </trustInfo> +</assembly>""", file=manifest) + else: + print(f'id ICON "../../graphics/windows/{icon}"', file=rc) + print('#include "wx-3.1/wx/msw/wx.rc"', file=rc) + return filename + def configure(conf): if conf.env.TARGET_WINDOWS_64 or conf.env.TARGET_WINDOWS_32: conf.env.append_value('CXXFLAGS', ['-mconsole']) @@ -46,6 +71,11 @@ def build(bld): if bld.env.ENABLE_DISK and not bld.env.DISABLE_GUI: cli_tools.append('dcpomatic_disk_writer') + try: + os.makedirs('build/src/tools') + except: + pass + for t in cli_tools: obj = bld(features='cxx cxxprogram') obj.uselib = uselib @@ -53,7 +83,7 @@ def build(bld): obj.use = ['libdcpomatic2'] obj.source = '%s.cc' % t if (bld.env.TARGET_WINDOWS_64 or bld.env.TARGET_WINDOWS_32) and t == 'dcpomatic_disk_writer': - obj.source += ' ../../platform/windows/%s.rc' % t + obj.source += f' ../../{make_rc(t, None)}' # Prevent a console window opening when we start dcpomatic2_disk_writer obj.env.append_value('LINKFLAGS', '-Wl,-subsystem,windows') obj.target = t.replace('dcpomatic', 'dcpomatic2') @@ -90,7 +120,7 @@ def build(bld): obj.use = ['libdcpomatic2', 'libdcpomatic2-wx'] obj.source = '%s.cc' % t if bld.env.TARGET_WINDOWS_64 or bld.env.TARGET_WINDOWS_32: - obj.source += ' ../../platform/windows/%s.rc' % t + obj.source += f' ../../{make_rc(t, t.replace("dcpomatic", "dcpomatic2") + ".ico")}' obj.target = t.replace('dcpomatic', 'dcpomatic2') i18n.po_to_mo(os.path.join('src', 'tools'), 'dcpomatic2', bld) |
