export: add support for CAF
[ardour.git] / wscript
diff --git a/wscript b/wscript
index 6e51d3d24d18ea472cce4090cc27af2b9617745f..d887fe68220351a2934b9d0b3d39422c1eb66842 100644 (file)
--- a/wscript
+++ b/wscript
@@ -8,7 +8,7 @@ import subprocess
 import sys
 
 MAJOR = '3'
-MINOR = '2'
+MINOR = '3'
 VERSION = MAJOR + '.' + MINOR
 
 APPNAME = 'Ardour' + MAJOR
@@ -110,6 +110,22 @@ def set_compiler_flags (conf,opt):
 
     # waf adds -O0 -g itself. thanks waf!
     is_clang = conf.env['CXX'][0].endswith('clang++')
+    
+    if conf.options.cxx11:
+        conf.check_cxx(cxxflags=["-std=c++11"])
+        conf.env.append_unique('CXXFLAGS', ['-std=c++11'])
+        if platform == "darwin":
+            conf.env.append_unique('CXXFLAGS', ['-stdlib=libc++'])
+            conf.env.append_unique('LINKFLAGS', ['-lc++'])
+            # Prevents visibility issues in standard headers
+            conf.define("_DARWIN_C_SOURCE", 1)
+
+    if is_clang and platform == "darwin":
+        # Silence warnings about the non-existing osx clang compiler flags
+        # -compatibility_version and -current_version.  These are Waf
+        # generated and not needed with clang
+        conf.env.append_unique ("CXXFLAGS", ["-Qunused-arguments"])
+        
     if opt.gprofile:
         debug_flags = [ '-pg' ]
 
@@ -357,8 +373,12 @@ def set_compiler_flags (conf,opt):
 
     conf.env.append_value('CFLAGS', '-DBOOST_SYSTEM_NO_DEPRECATED')
     conf.env.append_value('CXXFLAGS', '-DBOOST_SYSTEM_NO_DEPRECATED')
+    # need ISOC9X for llabs()
+    conf.env.append_value('CFLAGS', '-D_ISOC9X_SOURCE')
     conf.env.append_value('CFLAGS', '-D_LARGEFILE64_SOURCE')
     conf.env.append_value('CFLAGS', '-D_FILE_OFFSET_BITS=64')
+    # need ISOC9X for llabs()
+    conf.env.append_value('CXXFLAGS', '-D_ISOC9X_SOURCE')
     conf.env.append_value('CXXFLAGS', '-D_LARGEFILE64_SOURCE')
     conf.env.append_value('CXXFLAGS', '-D_FILE_OFFSET_BITS=64')
 
@@ -398,8 +418,6 @@ def options(opt):
                     help='Install MIME type, icons and .desktop file as per freedesktop.org standards')
     opt.add_option('--freebie', action='store_true', default=False, dest='freebie',
                     help='Build a version suitable for distribution as a zero-cost binary')
-    opt.add_option('--no-freesound', action='store_false', default=True, dest='freesound',
-                    help='Do not build with Freesound database support')
     opt.add_option('--gprofile', action='store_true', default=False, dest='gprofile',
                     help='Compile for use with gprofile')
     opt.add_option('--internal-shared-libs', action='store_true', default=True, dest='internal_shared_libs',
@@ -429,6 +447,8 @@ def options(opt):
                     help='Raise a floating point exception if a denormal is detected')
     opt.add_option('--test', action='store_true', default=False, dest='build_tests',
                     help="Build unit tests")
+    opt.add_option('--single-tests', action='store_true', default=False, dest='single_tests',
+                    help="Build a single executable for each unit test")
     #opt.add_option('--tranzport', action='store_true', default=False, dest='tranzport',
     # help='Compile with support for Frontier Designs Tranzport (if libusb is available)')
     opt.add_option('--universal', action='store_true', default=False, dest='universal',
@@ -452,6 +472,8 @@ def options(opt):
                     help='directory where Wine\'s Windows header files can be found')
     opt.add_option('--noconfirm', action='store_true', default=False, dest='noconfirm',
                     help='Do not ask questions that require confirmation during the build')
+    opt.add_option('--cxx11', action='store_true', default=False, dest='cxx11',
+                    help='Turn on c++11 compiler flags (-std=c++11)')
     for i in children:
         opt.recurse(i)
 
@@ -618,14 +640,13 @@ def configure(conf):
         conf.env['PHONE_HOME'] = True
     if opts.fpu_optimization:
         conf.env['FPU_OPTIMIZATION'] = True
-    if opts.freesound:
-        conf.define('FREESOUND',1)
-        conf.env['FREESOUND'] = True
     if opts.nls:
         conf.define('ENABLE_NLS', 1)
         conf.env['ENABLE_NLS'] = True
     if opts.build_tests:
         conf.env['BUILD_TESTS'] = opts.build_tests
+    if opts.single_tests:
+        conf.env['SINGLE_TESTS'] = opts.single_tests
     #if opts.tranzport:
     #    conf.env['TRANZPORT'] = 1
     if opts.windows_vst:
@@ -692,7 +713,6 @@ const char* const ardour_config_info = "\\n\\
     write_config_text('FLAC',                  conf.is_defined('HAVE_FLAC'))
     write_config_text('FPU optimization',      opts.fpu_optimization)
     write_config_text('Freedesktop files',     opts.freedesktop)
-    write_config_text('Freesound',             opts.freesound)
     write_config_text('JACK session support',  conf.is_defined('JACK_SESSION'))
     write_config_text('LV2 UI embedding',      conf.is_defined('HAVE_SUIL'))
     write_config_text('LV2 support',           conf.is_defined('LV2_SUPPORT'))