Explorar o código

[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.
Fabio Alessandrelli %!s(int64=2) %!d(string=hai) anos
pai
achega
8d6982be3b
Modificáronse 2 ficheiros con 8 adicións e 1 borrados
  1. 3 1
      SConstruct
  2. 5 0
      tools/windows.py

+ 3 - 1
SConstruct

@@ -28,7 +28,9 @@ elif ARGUMENTS.get("platform", ""):
 else:
     raise ValueError("Could not detect platform automatically, please specify with platform=<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

+ 5 - 0
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"])