|
@@ -7,7 +7,7 @@ from platform_methods import detect_arch
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
|
- from SCons import Environment
|
|
|
+ from SCons.Script.SConscript import SConsEnvironment
|
|
|
|
|
|
# To match other platforms
|
|
|
STACK_SIZE = 8388608
|
|
@@ -251,7 +251,7 @@ def get_flags():
|
|
|
]
|
|
|
|
|
|
|
|
|
-def build_res_file(target, source, env):
|
|
|
+def build_res_file(target, source, env: "SConsEnvironment"):
|
|
|
arch_aliases = {
|
|
|
"x86_32": "pe-i386",
|
|
|
"x86_64": "pe-x86-64",
|
|
@@ -286,7 +286,7 @@ def build_res_file(target, source, env):
|
|
|
return 0
|
|
|
|
|
|
|
|
|
-def setup_msvc_manual(env):
|
|
|
+def setup_msvc_manual(env: "SConsEnvironment"):
|
|
|
"""Running from VCVARS environment"""
|
|
|
|
|
|
env_arch = detect_build_env_arch()
|
|
@@ -303,7 +303,7 @@ def setup_msvc_manual(env):
|
|
|
print("Found MSVC, arch %s" % (env_arch))
|
|
|
|
|
|
|
|
|
-def setup_msvc_auto(env):
|
|
|
+def setup_msvc_auto(env: "SConsEnvironment"):
|
|
|
"""Set up MSVC using SCons's auto-detection logic"""
|
|
|
|
|
|
# If MSVC_VERSION is set by SCons, we know MSVC is installed.
|
|
@@ -339,7 +339,7 @@ def setup_msvc_auto(env):
|
|
|
print("Found MSVC version %s, arch %s" % (env["MSVC_VERSION"], env["arch"]))
|
|
|
|
|
|
|
|
|
-def setup_mingw(env):
|
|
|
+def setup_mingw(env: "SConsEnvironment"):
|
|
|
"""Set up env for use with mingw"""
|
|
|
|
|
|
env_arch = detect_build_env_arch()
|
|
@@ -374,7 +374,7 @@ def setup_mingw(env):
|
|
|
print("Using MinGW, arch %s" % (env["arch"]))
|
|
|
|
|
|
|
|
|
-def configure_msvc(env, vcvars_msvc_config):
|
|
|
+def configure_msvc(env: "SConsEnvironment", vcvars_msvc_config):
|
|
|
"""Configure env to work with MSVC"""
|
|
|
|
|
|
## Build type
|
|
@@ -417,7 +417,7 @@ def configure_msvc(env, vcvars_msvc_config):
|
|
|
|
|
|
if vcvars_msvc_config: # should be automatic if SCons found it
|
|
|
if os.getenv("WindowsSdkDir") is not None:
|
|
|
- env.Prepend(CPPPATH=[os.getenv("WindowsSdkDir") + "/Include"])
|
|
|
+ env.Prepend(CPPPATH=[str(os.getenv("WindowsSdkDir")) + "/Include"])
|
|
|
else:
|
|
|
print("Missing environment variable: WindowsSdkDir")
|
|
|
|
|
@@ -522,7 +522,7 @@ def configure_msvc(env, vcvars_msvc_config):
|
|
|
|
|
|
if vcvars_msvc_config:
|
|
|
if os.getenv("WindowsSdkDir") is not None:
|
|
|
- env.Append(LIBPATH=[os.getenv("WindowsSdkDir") + "/Lib"])
|
|
|
+ env.Append(LIBPATH=[str(os.getenv("WindowsSdkDir")) + "/Lib"])
|
|
|
else:
|
|
|
print("Missing environment variable: WindowsSdkDir")
|
|
|
|
|
@@ -543,8 +543,8 @@ def configure_msvc(env, vcvars_msvc_config):
|
|
|
env.AppendUnique(LINKFLAGS=["/LTCG"])
|
|
|
|
|
|
if vcvars_msvc_config:
|
|
|
- env.Prepend(CPPPATH=[p for p in os.getenv("INCLUDE").split(";")])
|
|
|
- env.Append(LIBPATH=[p for p in os.getenv("LIB").split(";")])
|
|
|
+ env.Prepend(CPPPATH=[p for p in str(os.getenv("INCLUDE")).split(";")])
|
|
|
+ env.Append(LIBPATH=[p for p in str(os.getenv("LIB")).split(";")])
|
|
|
|
|
|
# Sanitizers
|
|
|
if env["use_asan"]:
|
|
@@ -560,7 +560,7 @@ def configure_msvc(env, vcvars_msvc_config):
|
|
|
env.AppendUnique(LINKFLAGS=["/STACK:" + str(STACK_SIZE)])
|
|
|
|
|
|
|
|
|
-def configure_mingw(env):
|
|
|
+def configure_mingw(env: "SConsEnvironment"):
|
|
|
# Workaround for MinGW. See:
|
|
|
# https://www.scons.org/wiki/LongCmdLinesOnWin32
|
|
|
env.use_windows_spawn_fix()
|
|
@@ -747,7 +747,7 @@ def configure_mingw(env):
|
|
|
env.Append(BUILDERS={"RES": env.Builder(action=build_res_file, suffix=".o", src_suffix=".rc")})
|
|
|
|
|
|
|
|
|
-def configure(env: "Environment"):
|
|
|
+def configure(env: "SConsEnvironment"):
|
|
|
# Validate arch.
|
|
|
supported_arches = ["x86_32", "x86_64", "arm32", "arm64"]
|
|
|
if env["arch"] not in supported_arches:
|