From 94bc2b0cffd27dc74f428aee86ca9e2782a14e0a Mon Sep 17 00:00:00 2001 From: Jens Verwiebe Date: Mon, 12 Dec 2011 22:17:02 +0000 Subject: [PATCH] OSX: proper scons config and linking weak for jackOSX and errorhandling --- SConstruct | 12 +++++++++++- build_files/scons/config/darwin-config.py | 10 +++++----- intern/audaspace/jack/AUD_JackDevice.h | 4 ++++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/SConstruct b/SConstruct index 0bd7dc70446..d8db597d1c6 100644 --- a/SConstruct +++ b/SConstruct @@ -272,7 +272,7 @@ if 'blenderlite' in B.targets: if k not in B.arguments: env[k] = v -# Extended OSX_SDK and 3D_CONNEXION_CLIENT_LIBRARY detection for OSX +# Extended OSX_SDK and 3D_CONNEXION_CLIENT_LIBRARY and JAckOSX 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'] @@ -291,6 +291,16 @@ if env['OURPLATFORM']=='darwin': else: env.Append(LINKFLAGS=['-Xlinker','-weak_framework','-Xlinker','3DconnexionClient']) + # for now, Mac builders must download and install the JackOSX framework + # necessary header file lives here when installed: + # /Library/Frameworks/Jackmp.framework/Versions/A/Headers/jack.h + if env['WITH_BF_JACK'] == 1: + if not os.path.exists('/Library/Frameworks/Jackmp.framework'): + print "JackOSX install not found, disabling WITH_BF_JACK" # avoid build errors ! + env['WITH_BF_JACK'] = 0 + else: + env.Append(LINKFLAGS=['-Xlinker','-weak_framework','-Xlinker','Jackmp']) + if env['WITH_BF_OPENMP'] == 1: if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): env['CCFLAGS'].append('/openmp') diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py index e0b8822ce36..b84890fbba3 100644 --- a/build_files/scons/config/darwin-config.py +++ b/build_files/scons/config/darwin-config.py @@ -148,12 +148,12 @@ BF_CXX = '/usr' WITH_BF_STATICCXX = False BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a' -# TODO - set proper paths here (add precompiled to lib/ ? ) -WITH_BF_JACK = False -BF_JACK = '/usr' -BF_JACK_INC = '${BF_JACK}/include/jack' +# we use simply jack framework +WITH_BF_JACK = True +BF_JACK = '/Library/Frameworks/Jackmp.framework' +BF_JACK_INC = '${BF_JACK}/headers' BF_JACK_LIB = 'jack' -BF_JACK_LIBPATH = '${BF_JACK}/lib' +BF_JACK_LIBPATH = '${BF_JACK}' WITH_BF_SNDFILE = True BF_SNDFILE = LIBDIR + '/sndfile' diff --git a/intern/audaspace/jack/AUD_JackDevice.h b/intern/audaspace/jack/AUD_JackDevice.h index 3813685dbb6..6373d4f9d6d 100644 --- a/intern/audaspace/jack/AUD_JackDevice.h +++ b/intern/audaspace/jack/AUD_JackDevice.h @@ -36,6 +36,10 @@ #include +#if defined(__APPLE__) // always first include for jack weaklinking ! +#include +#endif + #include #include