From 3b941fc0fa23d5612497a99771676ac70fdd10ad Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 6 Mar 2015 19:03:16 +0100 Subject: build system tweaks for coreaudio/waves-coreaudio --- libs/backends/coreaudio/coreaudio_backend.cc | 5 ++--- libs/backends/coreaudio/wscript | 10 ++++++++-- wscript | 21 ++++++++++++++++++++- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc index f4add45ac9..fd03ddea50 100644 --- a/libs/backends/coreaudio/coreaudio_backend.cc +++ b/libs/backends/coreaudio/coreaudio_backend.cc @@ -95,8 +95,7 @@ CoreAudioBackend::~CoreAudioBackend () std::string CoreAudioBackend::name () const { - // XXX avoid name -conflict w/waves - return X_("CoreAudio2"); + return X_("CoreAudio"); } bool @@ -1514,7 +1513,7 @@ static bool already_configured (); static bool available (); static ARDOUR::AudioBackendInfo _descriptor = { - "CoreAudio2", + "CoreAudio", instantiate, deinstantiate, backend_factory, diff --git a/libs/backends/coreaudio/wscript b/libs/backends/coreaudio/wscript index 99d9e66f69..a4f9ee69f3 100644 --- a/libs/backends/coreaudio/wscript +++ b/libs/backends/coreaudio/wscript @@ -1,5 +1,6 @@ #!/usr/bin/env python from waflib.extras import autowaf as autowaf +from waflib import Options import os import sys import re @@ -15,6 +16,8 @@ def options(opt): def configure(conf): autowaf.configure(conf) + if Options.options.ppc: + conf.env['build_arch'] = "ppc" def build(bld): obj = bld(features = 'cxx cxxshlib') @@ -32,5 +35,8 @@ def build(bld): 'ARDOURBACKEND_DLL_EXPORTS', 'COREAUDIO_108' ] - # OSX 10.6 or later - obj.defines += ['COREAUDIO_108'] + # use new coreaudio API (the old one was deprecated in 10.6, yet still works) + # only use with OSX intel 10.6 or later, but for all OSX/PPC (<= 10.6) + if not bld.env['build_target'] in ['panther', 'tiger', 'leopard']: + if not (bld.env['build_target'] == 'snow leopard' and conf.env['build_arch'] == "ppc"): + obj.defines += ['COREAUDIO_108'] diff --git a/wscript b/wscript index 1f8b61ce19..c735a01e75 100644 --- a/wscript +++ b/wscript @@ -572,7 +572,7 @@ def options(opt): opt.add_option('--arch', type='string', action='store', dest='arch', help='Architecture-specific compiler FLAGS') opt.add_option('--with-backends', type='string', action='store', default='jack', dest='with_backends', - help='Specify which backend modules are to be included(jack,alsa,wavesaudio,dummy)') + help='Specify which backend modules are to be included(jack,alsa,wavesaudio,dummy,coreaudio)') opt.add_option('--backtrace', action='store_true', default=True, dest='backtrace', help='Compile with -rdynamic -- allow obtaining backtraces from within Ardour') opt.add_option('--no-carbon', action='store_true', default=False, dest='nocarbon', @@ -963,6 +963,24 @@ def configure(conf): conf.env['BUILD_ALSABACKEND'] = any('alsa' in b for b in backends) conf.env['BUILD_DUMMYBACKEND'] = any('dummy' in b for b in backends) conf.env['BUILD_WAVESBACKEND'] = any('wavesaudio' in b for b in backends) + conf.env['BUILD_CORECRAPPITA'] = any('coreaudio' in b for b in backends) + + if conf.env['BUILD_CORECRAPPITA'] and conf.env['BUILD_WAVESBACKEND']: + print("Coreaudio + Waves Backend are mutually exclusive") + sys.exit(1) + + if sys.platform != 'darwin' and conf.env['BUILD_CORECRAPPITA']: + print("Coreaudio backend is only available for OSX") + sys.exit(1) + + if sys.platform == 'linux' and conf.env['BUILD_WAVESBACKEND']: + print("Waves Backend is not for Linux") + sys.exit(1) + + if sys.platform != 'linux' and conf.env['BUILD_ALSABACKEND']: + print("ALSA Backend is only available on Linux") + sys.exit(1) + set_compiler_flags (conf, Options.options) @@ -1008,6 +1026,7 @@ const char* const ardour_config_info = "\\n\\ write_config_text('No plugin state', conf.is_defined('NO_PLUGIN_STATE')) write_config_text('Build target', conf.env['build_target']) write_config_text('CoreAudio', conf.is_defined('HAVE_COREAUDIO')) + write_config_text('CoreAudio/Midi Backend',conf.env['BUILD_CORECRAPPITA']) write_config_text('Debug RT allocations', conf.is_defined('DEBUG_RT_ALLOC')) write_config_text('Debug Symbols', conf.is_defined('debug_symbols') or conf.env['DEBUG']) write_config_text('Dummy backend', conf.env['BUILD_DUMMYBACKEND']) -- cgit v1.2.3