build system tweaks for coreaudio/waves-coreaudio
authorRobin Gareus <robin@gareus.org>
Fri, 6 Mar 2015 18:03:16 +0000 (19:03 +0100)
committerRobin Gareus <robin@gareus.org>
Fri, 6 Mar 2015 22:26:05 +0000 (23:26 +0100)
libs/backends/coreaudio/coreaudio_backend.cc
libs/backends/coreaudio/wscript
wscript

index f4add45ac91726046c1e9aab64a441a5c08ed532..fd03ddea50985e43818df37ecf34b655a95350a1 100644 (file)
@@ -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,
index 99d9e66f69f2b9fe4426482ff229c14ae98dd0e7..a4f9ee69f3a4b4c02eeb0ddbea6ac765ef752cfa 100644 (file)
@@ -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 1f8b61ce19d613b8bff30652a0df69223061d133..c735a01e75efcd086df60966576bd2871c61ec2a 100644 (file)
--- 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'])