Adds macports_clang
build flag to build using clang-5.0 form MacPorts (with OpenMP support).
This commit is contained in:
parent
f3ad14224e
commit
f8303ec6fb
5 changed files with 25 additions and 3 deletions
|
@ -169,6 +169,7 @@ opts.Add(EnumVariable('warnings', "Set the level of warnings emitted during comp
|
||||||
opts.Add(BoolVariable('progress', "Show a progress indicator during build", True))
|
opts.Add(BoolVariable('progress', "Show a progress indicator during build", True))
|
||||||
opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=all", False))
|
opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=all", False))
|
||||||
opts.Add(BoolVariable('openmp', "If yes, enable OpenMP", True))
|
opts.Add(BoolVariable('openmp', "If yes, enable OpenMP", True))
|
||||||
|
opts.Add(BoolVariable('macports_clang', "Build using clang-5.0 from MacPorts", False))
|
||||||
|
|
||||||
# Thirdparty libraries
|
# Thirdparty libraries
|
||||||
opts.Add(BoolVariable('builtin_enet', "Use the builtin enet library", True))
|
opts.Add(BoolVariable('builtin_enet', "Use the builtin enet library", True))
|
||||||
|
|
|
@ -4,7 +4,11 @@ import os
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
def make_debug(target, source, env):
|
def make_debug(target, source, env):
|
||||||
os.system('dsymutil %s -o %s.dSYM' % (target[0], target[0]))
|
if (env["macports_clang"]):
|
||||||
|
mpprefix = os.environ.get("MACPORTS_PREFIX", "/opt/local")
|
||||||
|
os.system(mpprefix + '/libexec/llvm-5.0/bin/llvm-dsymutil %s -o %s.dSYM' % (target[0], target[0]))
|
||||||
|
else:
|
||||||
|
os.system('dsymutil %s -o %s.dSYM' % (target[0], target[0]))
|
||||||
|
|
||||||
files = [
|
files = [
|
||||||
'crash_handler_osx.mm',
|
'crash_handler_osx.mm',
|
||||||
|
|
|
@ -72,6 +72,19 @@ def configure(env):
|
||||||
else: # 64-bit, default
|
else: # 64-bit, default
|
||||||
env.Append(CCFLAGS=['-arch', 'x86_64'])
|
env.Append(CCFLAGS=['-arch', 'x86_64'])
|
||||||
env.Append(LINKFLAGS=['-arch', 'x86_64'])
|
env.Append(LINKFLAGS=['-arch', 'x86_64'])
|
||||||
|
if (env["macports_clang"]):
|
||||||
|
mpprefix = os.environ.get("MACPORTS_PREFIX", "/opt/local")
|
||||||
|
env["CC"] = mpprefix + "/libexec/llvm-5.0/bin/clang"
|
||||||
|
env["LD"] = mpprefix + "/libexec/llvm-5.0/bin/clang++"
|
||||||
|
env["CXX"] = mpprefix + "/libexec/llvm-5.0/bin/clang++"
|
||||||
|
env['AR'] = mpprefix + "/libexec/llvm-5.0/bin/llvm-ar"
|
||||||
|
env['RANLIB'] = mpprefix + "/libexec/llvm-5.0/bin/llvm-ranlib"
|
||||||
|
env['AS'] = mpprefix + "/libexec/llvm-5.0/bin/llvm-as"
|
||||||
|
env.Append(CCFLAGS=['-D__MACPORTS__']) #hack to fix libvpx MM256_BROADCASTSI128_SI256 define
|
||||||
|
if (env["openmp"]):
|
||||||
|
env.Append(CPPFLAGS=['-fopenmp'])
|
||||||
|
env.Append(LINKFLAGS=['-L' + mpprefix + '/lib/libomp/'])
|
||||||
|
env.Append(LIBS=['gomp'])
|
||||||
|
|
||||||
else: # osxcross build
|
else: # osxcross build
|
||||||
root = os.environ.get("OSXCROSS_ROOT", 0)
|
root = os.environ.get("OSXCROSS_ROOT", 0)
|
||||||
|
|
3
thirdparty/README.md
vendored
3
thirdparty/README.md
vendored
|
@ -179,6 +179,9 @@ Files extracted from upstream source:
|
||||||
|
|
||||||
TODO.
|
TODO.
|
||||||
|
|
||||||
|
Important: File `libvpx/vpx_dsp/x86/vpx_subpixel_8t_intrin_avx2.c` has
|
||||||
|
Godot-made change marked with `// -- GODOT --` comments.
|
||||||
|
|
||||||
|
|
||||||
## libwebp
|
## libwebp
|
||||||
|
|
||||||
|
|
|
@ -40,11 +40,12 @@ DECLARE_ALIGNED(32, static const uint8_t, filt4_global_avx2[32]) = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(__clang__)
|
#if defined(__clang__)
|
||||||
|
// -- GODOT start -
|
||||||
# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ <= 3) || \
|
# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ <= 3) || \
|
||||||
(defined(__APPLE__) && \
|
(!defined(__MACPORTS__) && defined(__APPLE__) && \
|
||||||
((__clang_major__ == 4 && __clang_minor__ <= 2) || \
|
((__clang_major__ == 4 && __clang_minor__ <= 2) || \
|
||||||
(__clang_major__ == 5 && __clang_minor__ == 0)))
|
(__clang_major__ == 5 && __clang_minor__ == 0)))
|
||||||
|
// -- GODOT end --
|
||||||
# define MM256_BROADCASTSI128_SI256(x) \
|
# define MM256_BROADCASTSI128_SI256(x) \
|
||||||
_mm_broadcastsi128_si256((__m128i const *)&(x))
|
_mm_broadcastsi128_si256((__m128i const *)&(x))
|
||||||
# else // clang > 3.3, and not 5.0 on macosx.
|
# else // clang > 3.3, and not 5.0 on macosx.
|
||||||
|
|
Loading…
Reference in a new issue