Prechádzať zdrojové kódy

[SCons] Add OSXCross tool.

Fabio Alessandrelli 3 rokov pred
rodič
commit
8dbfe03d17
2 zmenil súbory, kde vykonal 34 pridanie a 1 odobranie
  1. 6 1
      tools/osx.py
  2. 28 0
      tools/osxcross.py

+ 6 - 1
tools/osx.py

@@ -1,14 +1,16 @@
 import os
 import sys
+import osxcross
 
 
 def options(opts):
     opts.Add("macos_deployment_target", "macOS deployment target", "default")
     opts.Add("macos_sdk_path", "macOS SDK path", "")
+    osxcross.options(opts)
 
 
 def exists(env):
-    return sys.platform == "darwin"
+    return sys.platform == "darwin" or osxcross.exists(env)
 
 
 def generate(env):
@@ -20,6 +22,9 @@ def generate(env):
         # Use clang on macOS by default
         env["CXX"] = "clang++"
         env["CC"] = "clang"
+    else:
+        # Use osxcross
+        osxcross.generate(env)
 
     if env["arch"] == "universal":
         env.Append(LINKFLAGS=["-arch", "x86_64", "-arch", "arm64"])

+ 28 - 0
tools/osxcross.py

@@ -0,0 +1,28 @@
+import os
+
+
+def options(opts):
+    opts.Add("osxcross_sdk", "OSXCross SDK version", "darwin16")
+
+
+def exists(env):
+    return "OSXCROSS_ROOT" in os.environ
+
+
+def generate(env):
+    root = os.environ.get("OSXCROSS_ROOT", "")
+    if env["arch"] == "arm64":
+        basecmd = root + "/target/bin/arm64-apple-" + env["osxcross_sdk"] + "-"
+    else:
+        basecmd = root + "/target/bin/x86_64-apple-" + env["osxcross_sdk"] + "-"
+
+    env["CC"] = basecmd + "clang"
+    env["CXX"] = basecmd + "clang++"
+    env["AR"] = basecmd + "ar"
+    env["RANLIB"] = basecmd + "ranlib"
+    env["AS"] = basecmd + "as"
+
+    binpath = os.path.join(root, "target", "bin")
+    if binpath not in env["ENV"]["PATH"]:
+        # Add OSXCROSS bin folder to PATH (required for linking).
+        env["ENV"]["PATH"] = "%s:%s" % (binpath, env["ENV"]["PATH"])