Browse Source

Merge pull request #14667 from bruvzg/macports-clang-imp

Minor improvements for #14658 (MacPorts clang support)
Rémi Verschelde 7 years ago
parent
commit
9314628921
3 changed files with 13 additions and 12 deletions
  1. 1 1
      SConstruct
  2. 3 2
      platform/osx/SCsub
  3. 9 9
      platform/osx/detect.py

+ 1 - 1
SConstruct

@@ -169,7 +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))
+opts.Add(EnumVariable('macports_clang', "Build using clang from MacPorts", 'no', ('no', '5.0', 'devel')))
 
 
 # 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))

+ 3 - 2
platform/osx/SCsub

@@ -4,9 +4,10 @@ import os
 Import('env')
 Import('env')
 
 
 def make_debug(target, source, env):
 def make_debug(target, source, env):
-    if (env["macports_clang"]):
+    if (env["macports_clang"] != 'no'):
         mpprefix = os.environ.get("MACPORTS_PREFIX", "/opt/local")
         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]))
+        mpclangver = env["macports_clang"]
+        os.system(mpprefix + '/libexec/llvm-' + mpclangver + '/bin/llvm-dsymutil %s -o %s.dSYM' % (target[0], target[0]))
     else:
     else:
         os.system('dsymutil %s -o %s.dSYM' % (target[0], target[0]))
         os.system('dsymutil %s -o %s.dSYM' % (target[0], target[0]))
 
 

+ 9 - 9
platform/osx/detect.py

@@ -72,19 +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"]):
+        if (env["macports_clang"] != 'no'):
             mpprefix = os.environ.get("MACPORTS_PREFIX", "/opt/local")
             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"
+            mpclangver = env["macports_clang"]
+            env["CC"] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/clang"
+            env["LD"] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/clang++"
+            env["CXX"] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/clang++"
+            env['AR'] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-ar"
+            env['RANLIB'] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-ranlib"
+            env['AS'] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-as"
             env.Append(CCFLAGS=['-D__MACPORTS__']) #hack to fix libvpx MM256_BROADCASTSI128_SI256 define
             env.Append(CCFLAGS=['-D__MACPORTS__']) #hack to fix libvpx MM256_BROADCASTSI128_SI256 define
             if (env["openmp"]):
             if (env["openmp"]):
                 env.Append(CPPFLAGS=['-fopenmp'])
                 env.Append(CPPFLAGS=['-fopenmp'])
-                env.Append(LINKFLAGS=['-L' + mpprefix + '/lib/libomp/'])
-                env.Append(LIBS=['gomp'])
+                env.Append(LINKFLAGS=['-fopenmp'])
 
 
     else: # osxcross build
     else: # osxcross build
         root = os.environ.get("OSXCROSS_ROOT", 0)
         root = os.environ.get("OSXCROSS_ROOT", 0)