mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-18 19:24:35 +00:00

Previous way of addressing compiled .rc files led to stale intermediate targets leading to issue #7441
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
# vi: syntax=python:et:ts=4
|
|
from os.path import join
|
|
from glob import glob
|
|
import SCons.Node
|
|
Import("env")
|
|
|
|
binaries = ["wesnoth", "wesnothd"]
|
|
for bin in binaries:
|
|
try:
|
|
env["RCCOM"] = '$RC $_CPPDEFFLAGS $RCINCFLAGS ${RCINCPREFIX} ${SOURCE.dir} $RCFLAGS -i $SOURCE -o $TARGET'
|
|
res = env.RES(bin + ".rc", CPPPATH=["#/"])
|
|
if bin == "wesnoth":
|
|
Depends(res, File("wesnoth.exe.manifest"))
|
|
except AttributeError:
|
|
pass
|
|
|
|
def WindowsInstaller(env, files):
|
|
files = [Entry(file) for file in Flatten(files)]
|
|
env["NSIS_INSTALL_FILES"] = ""
|
|
env["NSIS_UNINSTALL_FILES"] = ""
|
|
try:
|
|
env["version_major"] = ".".join(env["version"].split(".")[0:2])
|
|
except:
|
|
env["version_major"] = ""
|
|
for file in files:
|
|
if not file:
|
|
continue
|
|
if file.isdir() or isinstance(file, SCons.Node.FS.Dir):
|
|
env["NSIS_INSTALL_FILES"] += 'SetOutPath "$INSTDIR\\' + file.path + '"\n '
|
|
env["NSIS_INSTALL_FILES"] += "File /r /x .* " + file.path + "\\*.*\n "
|
|
env["NSIS_UNINSTALL_FILES"] += "RMDir /r $INSTDIR\\" + file.name + "\n "
|
|
else:
|
|
env["NSIS_INSTALL_FILES"] += 'SetOutPath "$INSTDIR"\n '
|
|
env["NSIS_INSTALL_FILES"] += "File " + file.path + "\n "
|
|
env["NSIS_UNINSTALL_FILES"] += "Delete $INSTDIR\\" + file.name + "\n "
|
|
env.ScanReplace("#/Wesnoth.nsi", "#/packaging/windows/Wesnoth.nsi.in")
|
|
|
|
env.Alias("windows-installer", [files, "#/Wesnoth.nsi"], "makensis ${SOURCES[-1]}")
|
|
|
|
env.AddMethod(WindowsInstaller)
|