Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Verwiebe <info@jensverwiebe.de>2013-12-06 20:06:37 +0400
committerJens Verwiebe <info@jensverwiebe.de>2013-12-06 20:06:51 +0400
commitc167d7b79a9f72c4ff24ee0f650e0dfb5fcdb79c (patch)
tree56f87ff16b7e1b9847d50112c98efa0d3c5e5d0c /SConstruct
parent967b12060cb6ebda75d216e0ffbb02c5ca7340a5 (diff)
OSX/scons: Introduce a new env var 'MACOSX_COMPILER'
This is needed to resolve the real used compiler from the compatibility shim’S or symlinks. Also set the real CCVERSION as scons CCVERSION would only read the default one, which is not useful for OSX
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct21
1 files changed, 17 insertions, 4 deletions
diff --git a/SConstruct b/SConstruct
index d95811a40d3..98bb61a3c07 100644
--- a/SConstruct
+++ b/SConstruct
@@ -296,6 +296,19 @@ env['CONFIGURELOG'] = os.path.abspath(os.path.normpath(os.path.join(env['BF_BUIL
if env['OURPLATFORM']=='darwin':
import commands
+ import subprocess
+
+ command = ["%s"%env['CC'], "--version"]
+ process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=None, shell=False)
+ line = process.communicate()[0]
+ ver = re.search(r'[0-9]+(\.[0-9]+)+', line)
+ if ver:
+ env['CCVERSION'] = ver.group(0)
+ frontend = re.search(r'gcc', line) or re.search(r'clang', line) or re.search(r'llvm-gcc', line)
+ if frontend:
+ env['MACOSX_COMPILER'] = frontend.group(0)
+
+ print B.bc.OKGREEN + "Using Compiler: " + B.bc.ENDC + env['MACOSX_COMPILER'] + '-' + env['CCVERSION']
cmd = 'sw_vers -productVersion'
MAC_CUR_VER=cmd_res=commands.getoutput(cmd)
@@ -374,7 +387,7 @@ if env['OURPLATFORM']=='darwin':
#Intel Macs are CoreDuo and Up
if env['MACOSX_ARCHITECTURE'] == 'i386' or env['MACOSX_ARCHITECTURE'] == 'x86_64':
env['REL_CCFLAGS'] = env['REL_CCFLAGS']+['-msse','-msse2','-msse3']
- if env['XCODE_CUR_VER'] >= '5':
+ if env['MACOSX_COMPILER'] != 'clang' or (env['MACOSX_COMPILER'] == 'clang' and env['CCVERSION'] >= '5.0'):
env['REL_CCFLAGS'] = env['REL_CCFLAGS']+['-ftree-vectorize'] # clang xcode 4 does not accept flag
else:
env['CCFLAGS'] = env['CCFLAGS']+['-fno-strict-aliasing']
@@ -383,7 +396,7 @@ if env['OURPLATFORM']=='darwin':
if env['MACOSX_ARCHITECTURE'] == 'x86_64':
env['REL_CCFLAGS'] = env['REL_CCFLAGS']+['-mssse3']
- if env['XCODE_CUR_VER'] >= '5' and not env['CC'].split('/')[len(env['CC'].split('/'))-1][4:] >= '4.6.1':
+ if env['MACOSX_COMPILER'] == 'clang' and env['CCVERSION'] >= '5.0':
env['CCFLAGS'].append('-ftemplate-depth=1024') # only valid for clang bundled with xcode 5
# 3DconnexionClient.framework, optionally install
@@ -411,7 +424,7 @@ if env['OURPLATFORM']=='darwin':
#Defaults openMP to true if compiler handles it ( only gcc 4.6.1 and newer )
# if your compiler does not have accurate suffix you may have to enable it by hand !
if env['WITH_BF_OPENMP'] == 1:
- if env['CC'].split('/')[len(env['CC'].split('/'))-1].strip('llvm - gcc clang') >= '4.6.1': # strip down to version string if any
+ if env['MACOSX_COMPILER'] == 'gcc' and env['CCVERSION'] >= '4.6.1': # strip down to version string if any
env['WITH_BF_OPENMP'] = 1 # multithreading for fluids, cloth, sculpt and smoke
print B.bc.OKGREEN + "Using OpenMP"
else:
@@ -421,7 +434,7 @@ if env['OURPLATFORM']=='darwin':
if env['WITH_BF_CYCLES_OSL'] == 1:
OSX_OSL_LIBPATH = Dir(env.subst(env['BF_OSL_LIBPATH'])).abspath
# we need 2 variants of passing the oslexec with the force_load option, string and list type atm
- if env['CC'].split('/')[len(env['CC'].split('/'))-1].strip('llvm - gcc clang') >= '4.8': # strip down to version string if any
+ if env['MACOSX_COMPILER'] == 'gcc' and env['CCVERSION'] >= '4.8': # strip down to version string if any
env.Append(LINKFLAGS=['-L'+OSX_OSL_LIBPATH,'-loslcomp','-loslexec','-loslquery'])
else:
env.Append(LINKFLAGS=['-L'+OSX_OSL_LIBPATH,'-loslcomp','-force_load '+ OSX_OSL_LIBPATH +'/liboslexec.a','-loslquery'])