Add option in SCons to copy environment variables

This allows custom environment variables to be used during the build,
which is useful when using alternative compilation tools such as caches
and distributed build systems.
This commit is contained in:
George Marques 2022-12-31 10:59:52 -03:00
parent f8a2a91936
commit ed52ac9b5d
No known key found for this signature in database
GPG Key ID: 046BD46A3201E43D
1 changed files with 7 additions and 0 deletions

View File

@ -212,6 +212,7 @@ opts.Add("extra_suffix", "Custom extra suffix added to the base filename of all
opts.Add("object_prefix", "Custom prefix added to the base filename of all generated object files", "") opts.Add("object_prefix", "Custom prefix added to the base filename of all generated object files", "")
opts.Add(BoolVariable("vsproj", "Generate a Visual Studio solution", False)) opts.Add(BoolVariable("vsproj", "Generate a Visual Studio solution", False))
opts.Add("vsproj_name", "Name of the Visual Studio solution", "godot") opts.Add("vsproj_name", "Name of the Visual Studio solution", "godot")
opts.Add("import_env_vars", "A comma-separated list of environment variables to copy from the outer environment.", "")
opts.Add(BoolVariable("disable_3d", "Disable 3D nodes for a smaller executable", False)) opts.Add(BoolVariable("disable_3d", "Disable 3D nodes for a smaller executable", False))
opts.Add(BoolVariable("disable_advanced_gui", "Disable advanced GUI nodes and behaviors", False)) opts.Add(BoolVariable("disable_advanced_gui", "Disable advanced GUI nodes and behaviors", False))
opts.Add("build_profile", "Path to a file containing a feature build profile", "") opts.Add("build_profile", "Path to a file containing a feature build profile", "")
@ -270,6 +271,12 @@ opts.Add("LINKFLAGS", "Custom flags for the linker")
# in following code (especially platform and custom_modules). # in following code (especially platform and custom_modules).
opts.Update(env_base) opts.Update(env_base)
# Copy custom environment variables if set.
if env_base["import_env_vars"]:
for env_var in str(env_base["import_env_vars"]).split(","):
if env_var in os.environ:
env_base["ENV"][env_var] = os.environ[env_var]
# Platform selection: validate input, and add options. # Platform selection: validate input, and add options.
selected_platform = "" selected_platform = ""