From 8d6982be3be3c4bc0220474a758050bfab9b2ae9 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Tue, 20 Dec 2022 15:22:29 +0100 Subject: [PATCH] [SCons] Platform agnostic default toolchain (GNU). Create the SCons Environment with an empty PLATFORM variable to force the default tools to use the GNU toolchain. Platform specific toolchains are then setup in our custom tools. --- SConstruct | 4 +++- tools/windows.py | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/SConstruct b/SConstruct index 09a963f9..e25dd955 100644 --- a/SConstruct +++ b/SConstruct @@ -28,7 +28,9 @@ elif ARGUMENTS.get("platform", ""): else: raise ValueError("Could not detect platform automatically, please specify with platform=") -env = Environment(tools=["default"]) +# Default tools with no platform defaults to gnu toolchain. +# We apply platform specific toolchains via our custom tools. +env = Environment(tools=["default"], PLATFORM="") # Default num_jobs to local cpu count if not user specified. # SCons has a peculiarity where user-specified options won't be overridden diff --git a/tools/windows.py b/tools/windows.py index 16acc28b..e64695ae 100644 --- a/tools/windows.py +++ b/tools/windows.py @@ -23,7 +23,12 @@ def generate(env): elif env["arch"] == "x86_32": env["TARGET_ARCH"] = "x86" env["is_msvc"] = True + + # MSVC, linker, and archiver. msvc.generate(env) + env.Tool("mslib") + env.Tool("mslink") + env.Append(CPPDEFINES=["TYPED_METHOD_BIND", "NOMINMAX"]) env.Append(CCFLAGS=["/EHsc"]) env.Append(LINKFLAGS=["/WX"])