Merge pull request #91791 from akien-mga/scons-process-platform-flags-early

SCons: Process platform-specific flags earlier
This commit is contained in:
Rémi Verschelde 2024-05-31 14:15:52 +02:00
commit 43d9f48c9f
No known key found for this signature in database
GPG key ID: C3336907360768E1
3 changed files with 10 additions and 11 deletions

View file

@ -374,6 +374,14 @@ if env["platform"] in platform_opts:
for opt in platform_opts[env["platform"]]:
opts.Add(opt)
# Platform-specific flags.
# These can sometimes override default options, so they need to be processed
# as early as possible to ensure that we're using the correct values.
flag_list = platform_flags[env["platform"]]
for key, value in flag_list.items():
if key not in ARGUMENTS or ARGUMENTS[key] == "auto": # Allow command line to override platform flags
env[key] = value
# Update the environment to take platform-specific options into account.
opts.Update(env, {**ARGUMENTS, **env.Dictionary()})
@ -568,17 +576,8 @@ if env["build_profile"] != "":
print_error('Failed to open feature build profile: "{}"'.format(env["build_profile"]))
Exit(255)
# Platform specific flags.
# These can sometimes override default options.
flag_list = platform_flags[env["platform"]]
for key, value in flag_list.items():
if key not in ARGUMENTS or ARGUMENTS[key] == "auto": # Allow command line to override platform flags
env[key] = value
# 'dev_mode' and 'production' are aliases to set default options if they haven't been
# set manually by the user.
# These need to be checked *after* platform specific flags so that different
# default values can be set (e.g. to keep LTO off for `production` on some platforms).
if env["dev_mode"]:
env["verbose"] = methods.get_cmdline_bool("verbose", True)
env["warnings"] = ARGUMENTS.get("warnings", "extra")

View file

@ -68,7 +68,7 @@ def get_min_target_api():
def get_flags():
return {
"arch": "arm64", # Default for convenience.
"arch": "arm64",
"target": "template_debug",
"supported": ["mono"],
}

View file

@ -48,7 +48,7 @@ def get_doc_path():
def get_flags():
return {
"arch": "arm64", # Default for convenience.
"arch": "arm64",
"target": "template_debug",
"use_volk": False,
"supported": ["mono"],