From 577293569a0e7ba8fdb0411401c86fc1bd5dcbde Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 7 Aug 2011 16:54:40 +0000 Subject: [PATCH] scons patch from jensverwiebe fix a silly bug in version detection, - added an OSX sdk-check jensverwiebe, needs to get commit access!, but will apply his patches for now. --- SConstruct | 9 +++- build_files/scons/config/darwin-config.py | 54 +++++++++++++---------- build_files/scons/tools/btools.py | 4 +- 3 files changed, 41 insertions(+), 26 deletions(-) diff --git a/SConstruct b/SConstruct index b422892680d..b35f3fdbf7b 100644 --- a/SConstruct +++ b/SConstruct @@ -253,8 +253,15 @@ if 'blenderlite' in B.targets: if k not in B.arguments: env[k] = v -# detect presence of 3D_CONNEXION_CLIENT_LIBRARY for OSX +# Extended OSX_SDK and 3D_CONNEXION_CLIENT_LIBRARY detection for OSX if env['OURPLATFORM']=='darwin': + print B.bc.OKGREEN + "Detected Xcode version: -- " + B.bc.ENDC + env['XCODE_CUR_VER'][:9] + " --" + print "Available " + env['MACOSX_SDK_CHECK'] + if not 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']: + print B.bc.OKGREEN + "MacOSX10.5.sdk not available:" + B.bc.ENDC + " using MacOSX10.6.sdk" + else: + print B.bc.OKGREEN + "Found recommended sdk :" + B.bc.ENDC + " using MacOSX10.5.sdk" + # for now, Mac builders must download and install the driver framework from 3Dconnexion # necessary header file lives here when installed: # /Library/Frameworks/3DconnexionClient.framework/Versions/Current/Headers/ConnexionClientAPI.h diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py index a8bad81324c..0c851e43825 100644 --- a/build_files/scons/config/darwin-config.py +++ b/build_files/scons/config/darwin-config.py @@ -1,9 +1,7 @@ # # Note : if you want to alter this file -# copy it as a whole in the upper folder -# as user-config.py -# dont create a new file with only some -# vars changed. +# setup a user-config.py in main directory +# and set the wanted values there import commands @@ -21,17 +19,23 @@ cmd = 'uname -p' MAC_PROC=commands.getoutput(cmd) cmd = 'uname -r' cmd_res=commands.getoutput(cmd) -MAC_CUR_VER='10.5' # by default (test below fails on my 10.5 PowerPC) -if cmd_res[:2]=='7': + +if cmd_res[:1]=='7': MAC_CUR_VER='10.3' -elif cmd_res[:2]=='8': +elif cmd_res[:1]=='8': MAC_CUR_VER='10.4' -elif cmd_res[:2]=='9': +elif cmd_res[:1]=='9': MAC_CUR_VER='10.5' elif cmd_res[:2]=='10': MAC_CUR_VER='10.6' elif cmd_res[:2]=='11': MAC_CUR_VER='10.7' +cmd = 'xcodebuild -version' +cmd_xcode=commands.getoutput(cmd) +XCODE_CUR_VER=cmd_xcode +cmd = 'xcodebuild -showsdks' +cmd_sdk=commands.getoutput(cmd) +MACOSX_SDK_CHECK=cmd_sdk if MACOSX_ARCHITECTURE == 'x86_64' or MACOSX_ARCHITECTURE == 'ppc64': USE_QTKIT=True # Carbon quicktime is not available for 64bit @@ -60,21 +64,23 @@ elif MACOSX_ARCHITECTURE == 'i386' and MAC_CUR_VER == '10.4': LCGDIR = '#../lib/darwin-8.x.i386' CC = 'gcc-4.0' CXX = 'g++-4.0' -elif MAC_CUR_VER >= '10.6': - # OSX 10.6 and 10.7 developer tools do not come with sdk < 10.6 anymore ! - MAC_MIN_VERS = '10.6' - MACOSX_DEPLOYMENT_TARGET = '10.6' - MACOSX_SDK='/Developer/SDKs/MacOSX10.6.sdk' - LCGDIR = '#../lib/darwin-9.x.universal' - CC = 'llvm-gcc-4.2' - CXX = 'llvm-g++-4.2' else : - MAC_MIN_VERS = '10.5' - MACOSX_DEPLOYMENT_TARGET = '10.5' - MACOSX_SDK='/Developer/SDKs/MacOSX10.5.sdk' - LCGDIR = '#../lib/darwin-9.x.universal' - CC = 'gcc-4.2' - CXX = 'g++-4.2' + if 'Mac OS X 10.5' in MACOSX_SDK_CHECK: + # OSX 10.5/6 with Xcode 3.x + MAC_MIN_VERS = '10.5' + MACOSX_DEPLOYMENT_TARGET = '10.5' + MACOSX_SDK='/Developer/SDKs/MacOSX10.5.sdk' + LCGDIR = '#../lib/darwin-9.x.universal' + CC = 'gcc-4.2' + CXX = 'g++-4.2' + else: + # OSX 10.6/7 with Xcode 4.x + MAC_MIN_VERS = '10.6' + MACOSX_DEPLOYMENT_TARGET = '10.6' + MACOSX_SDK='/Developer/SDKs/MacOSX10.6.sdk' + LCGDIR = '#../lib/darwin-9.x.universal' + CC = 'gcc-4.2' + CXX = 'g++-4.2' LIBDIR = '${LCGDIR}' @@ -200,7 +206,7 @@ BF_GETTEXT_LIB = 'intl' BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib' WITH_BF_GAMEENGINE = True -WITH_BF_PLAYER = False +WITH_BF_PLAYER = True WITH_BF_BULLET = True BF_BULLET = '#extern/bullet2/src' @@ -251,7 +257,7 @@ BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries' BF_OPENGL_LINKFLAGS = ['-framework', 'OpenGL'] #OpenCollada flags -WITH_BF_COLLADA = False +WITH_BF_COLLADA = True BF_COLLADA = '#source/blender/collada' BF_COLLADA_INC = '${BF_COLLADA}' BF_COLLADA_LIB = 'bf_collada' diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index 9b911b9d6f0..25e0582c536 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -149,7 +149,7 @@ def validate_arguments(args, bc): 'BF_PROFILE_CFLAGS', 'BF_PROFILE_CCFLAGS', 'BF_PROFILE_CXXFLAGS', 'BF_PROFILE_LINKFLAGS', 'BF_DEBUG_CFLAGS', 'BF_DEBUG_CCFLAGS', 'BF_DEBUG_CXXFLAGS', 'C_WARN', 'CC_WARN', 'CXX_WARN', - 'LLIBS', 'PLATFORM_LINKFLAGS','MACOSX_ARCHITECTURE', + 'LLIBS', 'PLATFORM_LINKFLAGS','MACOSX_ARCHITECTURE', 'MACOSX_SDK_CHECK', 'XCODE_CUR_VER', ] @@ -462,6 +462,8 @@ def read_opts(env, cfg, args): ('LLIBS', 'Platform libs', []), ('PLATFORM_LINKFLAGS', 'Platform linkflags', []), ('MACOSX_ARCHITECTURE', 'python_arch.zip select', ''), + ('MACOSX_SDK_CHECK', 'detect available OSX sdk`s', ''), + ('XCODE_CUR_VER', 'detect XCode version', ''), (BoolVariable('BF_PROFILE', 'Add profiling information if true', False)), ('BF_PROFILE_CFLAGS', 'C only profiling flags', []),