From d636e1df907e5665b99987a7106a0ec885a166f5 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 7 Oct 2014 16:16:57 -0400 Subject: [PATCH] improved macros for handling Mavericks-style Carbon headers; remove redundant extra addition of --stdlib=libc++ in CXXFLAGS on mavericks --- gtk2_ardour/fix_carbon.h | 2 +- libs/appleutility/CAConditionalMacros.h | 4 ++-- wscript | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/fix_carbon.h b/gtk2_ardour/fix_carbon.h index 5c1922ed0d..b77543da18 100644 --- a/gtk2_ardour/fix_carbon.h +++ b/gtk2_ardour/fix_carbon.h @@ -25,7 +25,7 @@ /* an awful hack to stop Carbon #defines from messing with other code */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 +#ifdef CARBON_FLAT_HEADERS #include "MacTypes.h" #else #include "/System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h" diff --git a/libs/appleutility/CAConditionalMacros.h b/libs/appleutility/CAConditionalMacros.h index 091cf4d278..09fa8d1b2f 100644 --- a/libs/appleutility/CAConditionalMacros.h +++ b/libs/appleutility/CAConditionalMacros.h @@ -55,7 +55,7 @@ #include "TargetConditionals.h" // Determine whether or not to use framework style includes for system headers -#if !defined(CoreAudio_Use_Framework_Includes) && !defined(__COREAUDIO_USE_FLAT_INCLUDES__) +#if !defined(CoreAudio_Use_Framework_Includes) && !defined(__COREAUDIO_USE_FLAT_INCLUDES__) && !defined (CARBON_FLAT_HEADERS) #if TARGET_RT_MAC_MACHO #define CoreAudio_Use_Framework_Includes 1 #else @@ -65,7 +65,7 @@ // Include the regular ConditionalMacros.h too, since it has useful stuff that // TargetConditionals.h lacks for some reason. -#if CoreAudio_Use_Framework_Includes && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) +#if CoreAudio_Use_Framework_Includes #include "ConditionalMacros.h" #else #include diff --git a/wscript b/wscript index a9c5990527..5a49f3a38b 100755 --- a/wscript +++ b/wscript @@ -210,7 +210,9 @@ def set_compiler_flags (conf,opt): conf.env['build_target'] = opt.dist_target if conf.env['build_target'] == 'mavericks': - cxx_flags.append('-stdlib=libc++') + # Mavericks and later changed the syntax to be used when including Carbon headers, + # from requiring a full path to requiring just the header name. + cxx_flags.append('-DCARBON_FLAT_HEADERS') if conf.env['build_target'] == 'snowleopard': #