SCons: Add only selected platform's opts to env

Otherwise we can get situations where platform-specific opts with the same name
can override each other depending on the order at which platforms are parsed,
as was the case with `use_static_cpp` in Linux/Windows.

Fixes #44304.

This also has the added benefit that the `scons --help` output will now only
include the options which are relevant for the selected (or detected) platform.
This commit is contained in:
Rémi Verschelde
2020-12-16 16:29:32 +01:00
parent c514cc5822
commit 0f84d8dc49
7 changed files with 13 additions and 29 deletions

View File

@ -68,7 +68,7 @@ def get_opts():
EnumVariable("windows_subsystem", "Windows subsystem", "default", ("default", "console", "gui")),
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
("msvc_version", "MSVC version to use. Ignored if VCINSTALLDIR is set in shell env.", None),
BoolVariable("use_mingw", "Use the Mingw compiler, even if MSVC is installed. Only used on Windows.", False),
BoolVariable("use_mingw", "Use the Mingw compiler, even if MSVC is installed.", False),
BoolVariable("use_llvm", "Use the LLVM compiler", False),
BoolVariable("use_thinlto", "Use ThinLTO", False),
BoolVariable("use_static_cpp", "Link MinGW/MSVC C++ runtime libraries statically", True),
@ -76,12 +76,10 @@ def get_opts():
def get_flags():
return []
def build_res_file(target, source, env):
if env["bits"] == "32":
cmdbase = env["mingw_prefix_32"]
else: