diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-05-07 09:04:40 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-05-07 09:04:40 +0200 |
commit | 570220ba9b127325f1a5aa7bb17d5c6f76ccf62c (patch) | |
tree | 4d80b60389d0321dca50853bda7b311c611715be /platform/windows/platform_windows_builders.py | |
parent | 965bae735e033ec28169a3f518c2e9be2d6645a0 (diff) | |
parent | ecebe0b40d4f3c645f2732b7b8f0f0cb5bc2ddff (diff) | |
download | redot-engine-570220ba9b127325f1a5aa7bb17d5c6f76ccf62c.tar.gz |
Merge pull request #85319 from Repiteo/scons-mingw-prefix-fixes
SCons: Implement `get_mingw_tool` to fix mingw prefix ambiguity
Diffstat (limited to 'platform/windows/platform_windows_builders.py')
-rw-r--r-- | platform/windows/platform_windows_builders.py | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/platform/windows/platform_windows_builders.py b/platform/windows/platform_windows_builders.py index 729d55cea6..fc52e39456 100644 --- a/platform/windows/platform_windows_builders.py +++ b/platform/windows/platform_windows_builders.py @@ -1,24 +1,17 @@ """Functions used to generate source files during build time""" import os -from detect import get_mingw_bin_prefix -from detect import try_cmd +from detect import get_mingw_tool def make_debug_mingw(target, source, env): - dst = str(target[0]) - # Force separate debug symbols if executable size is larger than 1.9 GB. - if env["separate_debug_symbols"] or os.stat(dst).st_size >= 2040109465: - mingw_bin_prefix = get_mingw_bin_prefix(env["mingw_prefix"], env["arch"]) - if try_cmd("objcopy --version", env["mingw_prefix"], env["arch"]): - os.system(mingw_bin_prefix + "objcopy --only-keep-debug {0} {0}.debugsymbols".format(dst)) - else: - os.system("objcopy --only-keep-debug {0} {0}.debugsymbols".format(dst)) - if try_cmd("strip --version", env["mingw_prefix"], env["arch"]): - os.system(mingw_bin_prefix + "strip --strip-debug --strip-unneeded {0}".format(dst)) - else: - os.system("strip --strip-debug --strip-unneeded {0}".format(dst)) - if try_cmd("objcopy --version", env["mingw_prefix"], env["arch"]): - os.system(mingw_bin_prefix + "objcopy --add-gnu-debuglink={0}.debugsymbols {0}".format(dst)) - else: - os.system("objcopy --add-gnu-debuglink={0}.debugsymbols {0}".format(dst)) + objcopy = get_mingw_tool("objcopy", env["mingw_prefix"], env["arch"]) + strip = get_mingw_tool("strip", env["mingw_prefix"], env["arch"]) + + if not objcopy or not strip: + print('`separate_debug_symbols` requires both "objcopy" and "strip" to function.') + return + + os.system("{0} --only-keep-debug {1} {1}.debugsymbols".format(objcopy, target[0])) + os.system("{0} --strip-debug --strip-unneeded {1}".format(strip, target[0])) + os.system("{0} --add-gnu-debuglink={1}.debugsymbols {1}".format(objcopy, target[0])) |