summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2018-12-30 15:07:18 +0100
committerGitHub <noreply@github.com>2018-12-30 15:07:18 +0100
commitdcc7f2b54b562ad5a58dcd0dfe72ad8e6f05deb9 (patch)
tree8182a38f1be82c70d31b6c8610fdc0b6c117f73d
parent534044e8f8921d90677f7bc307dd2997d6eb873e (diff)
parentd52100f4ffd3191ca070be34043c5a5343cd1a0b (diff)
Merge pull request #24545 from akien-mga/osxcross-mono
SCons: Allow building Mono module with OSXCross
-rw-r--r--modules/mono/config.py10
-rw-r--r--modules/webm/libvpx/SCsub2
-rw-r--r--platform/iphone/SCsub2
-rw-r--r--platform/iphone/detect.py4
-rw-r--r--platform/osx/detect.py6
5 files changed, 17 insertions, 7 deletions
diff --git a/modules/mono/config.py b/modules/mono/config.py
index 189699cca8..a81ecfce70 100644
--- a/modules/mono/config.py
+++ b/modules/mono/config.py
@@ -142,7 +142,9 @@ def configure(env):
copy_file(mono_bin_path, 'bin', mono_dll_name + '.dll')
else:
- sharedlib_ext = '.dylib' if sys.platform == 'darwin' else '.so'
+ is_apple = (sys.platform == 'darwin' or "osxcross" in env)
+
+ sharedlib_ext = '.dylib' if is_apple else '.so'
mono_root = ''
mono_lib_path = ''
@@ -154,7 +156,7 @@ def configure(env):
if os.getenv('MONO64_PREFIX'):
mono_root = os.getenv('MONO64_PREFIX')
- if not mono_root and sys.platform == 'darwin':
+ if not mono_root and is_apple:
# Try with some known directories under OSX
hint_dirs = ['/Library/Frameworks/Mono.framework/Versions/Current', '/usr/local/var/homebrew/linked/mono']
for hint_dir in hint_dirs:
@@ -190,14 +192,14 @@ def configure(env):
if mono_static:
mono_lib_file = os.path.join(mono_lib_path, 'lib' + mono_lib + '.a')
- if sys.platform == 'darwin':
+ if is_apple:
env.Append(LINKFLAGS=['-Wl,-force_load,' + mono_lib_file])
else:
env.Append(LINKFLAGS=['-Wl,-whole-archive', mono_lib_file, '-Wl,-no-whole-archive'])
else:
env.Append(LIBS=[mono_lib])
- if sys.platform == 'darwin':
+ if is_apple:
env.Append(LIBS=['iconv', 'pthread'])
else:
env.Append(LIBS=['m', 'rt', 'dl', 'pthread'])
diff --git a/modules/webm/libvpx/SCsub b/modules/webm/libvpx/SCsub
index 84e986630d..df75dca310 100644
--- a/modules/webm/libvpx/SCsub
+++ b/modules/webm/libvpx/SCsub
@@ -350,7 +350,7 @@ if webm_multithread:
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_mt)
if webm_cpu_x86:
- is_clang_or_gcc = ('gcc' in os.path.basename(env["CC"])) or ('clang' in os.path.basename(env["CC"])) or ("OSXCROSS_ROOT" in os.environ)
+ is_clang_or_gcc = ('gcc' in os.path.basename(env["CC"])) or ('clang' in os.path.basename(env["CC"])) or ("osxcross" in env)
env_libvpx_mmx = env_libvpx.Clone()
if cpu_bits == '32' and is_clang_or_gcc:
diff --git a/platform/iphone/SCsub b/platform/iphone/SCsub
index debf051eda..d5540fe8db 100644
--- a/platform/iphone/SCsub
+++ b/platform/iphone/SCsub
@@ -23,7 +23,7 @@ ios_lib = env_ios.add_library('iphone', iphone_lib)
def combine_libs(target=None, source=None, env=None):
lib_path = target[0].srcnode().abspath
- if ("OSXCROSS_IOS" in os.environ):
+ if "osxcross" in env:
libtool = '$IPHONEPATH/usr/bin/${ios_triple}libtool'
else:
libtool = "$IPHONEPATH/usr/bin/libtool"
diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py
index ee0e36b926..20fb4428dd 100644
--- a/platform/iphone/detect.py
+++ b/platform/iphone/detect.py
@@ -76,6 +76,10 @@ def configure(env):
## Compiler configuration
+ # Save this in environment for use by other modules
+ if "OSXCROSS_IOS" in os.environ:
+ env["osxcross"] = True
+
env['ENV']['PATH'] = env['IPHONEPATH'] + "/Developer/usr/bin/:" + env['ENV']['PATH']
compiler_path = '$IPHONEPATH/usr/bin/${ios_triple}'
diff --git a/platform/osx/detect.py b/platform/osx/detect.py
index 051836b66d..6eee8f204f 100644
--- a/platform/osx/detect.py
+++ b/platform/osx/detect.py
@@ -72,7 +72,11 @@ def configure(env):
## Compiler configuration
- if "OSXCROSS_ROOT" not in os.environ: # regular native build
+ # Save this in environment for use by other modules
+ if "OSXCROSS_ROOT" in os.environ:
+ env["osxcross"] = True
+
+ if not "osxcross" in env: # regular native build
env.Append(CCFLAGS=['-arch', 'x86_64'])
env.Append(LINKFLAGS=['-arch', 'x86_64'])
if (env["macports_clang"] != 'no'):