summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-04-27 17:29:38 +0200
committerCarl Hetherington <cth@carlh.net>2024-04-28 20:20:56 +0200
commite97b5dcf3e8a8b7756f06cc531188e894fd73a61 (patch)
tree8816a4a574483b87a57de487b8ee1cf1a5129e3a
parenta7b389a2e2ddbb41c15a0a87392c48ca4ded3bca (diff)
Build .rc files on the fly.
-rw-r--r--platform/windows/dcpomatic.rc2
-rw-r--r--platform/windows/dcpomatic2_disk_writer.exe.manifest12
-rw-r--r--platform/windows/dcpomatic_batch.rc2
-rw-r--r--platform/windows/dcpomatic_combiner.rc2
-rw-r--r--platform/windows/dcpomatic_disk.rc2
-rw-r--r--platform/windows/dcpomatic_disk_writer.rc2
-rw-r--r--platform/windows/dcpomatic_editor.rc2
-rw-r--r--platform/windows/dcpomatic_kdm.rc2
-rw-r--r--platform/windows/dcpomatic_player.rc2
-rw-r--r--platform/windows/dcpomatic_playlist.rc2
-rw-r--r--platform/windows/dcpomatic_server.rc2
-rw-r--r--platform/windows/dcpomatic_verifier.rc2
-rw-r--r--platform/windows/wscript2
-rw-r--r--src/tools/wscript34
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)