#!/usr/bin/env python
import autowaf
import os
+import sys
+import TaskGen
# Version of this package (even if built as a child)
MAJOR = '4'
autowaf.build_version_files(path_prefix+'pbd/version.h', path_prefix+'version.cc',
'libpbd', MAJOR, MINOR, MICRO)
autowaf.configure(conf)
- autowaf.check_tool(conf, 'compiler_cxx')
+ conf.check_tool('compiler_cxx')
autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0')
- autowaf.check_pkg(conf, 'uuid', uselib_store='UUID')
+ if sys.platform != 'darwin':
+ autowaf.check_pkg(conf, 'uuid', uselib_store='UUID')
conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT')
-
- # This must be defined for libpbd only, it breaks ardour
- conf.check(header_name='execinfo.h', define_name='PBD_HAVE_EXECINFO')
+ conf.check(header_name='execinfo.h', define_name='HAVE_EXECINFO')
+ conf.check(header_name='unistd.h', define_name='HAVE_UNISTD')
+ if conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', ccflags='-D_XOPEN_SOURCE=600') == False:
+ conf.define ('NO_POSIX_MEMALIGN',1)
conf.write_config_header('libpbd-config.h')
obj.source = '''
basename.cc
base_ui.cc
+ boost_debug.cc
+ cartesian.cc
command.cc
convert.cc
controllable.cc
+ controllable_descriptor.cc
+ clear_dir.cc
+ crossthread.cc
+ cpus.cc
+ debug.cc
enumwriter.cc
+ event_loop.cc
dmalloc.cc
+ enums.cc
error.cc
filesystem.cc
filesystem_paths.cc
+ file_manager.cc
file_utils.cc
fpu.cc
id.cc
+ locale_guard.cc
malign.cc
mountpoint.cc
+ openuri.cc
pathscanner.cc
pool.cc
+ property_list.cc
pthread_utils.cc
receiver.cc
search_path.cc
+ semutils.cc
shortpath.cc
+ signals.cc
+ sndfile_manager.cc
stacktrace.cc
+ stateful_diff_command.cc
stateful.cc
strreplace.cc
strsplit.cc
obj.includes = ['.']
obj.name = 'libpbd'
obj.target = 'pbd'
- obj.uselib = 'GLIBMM SIGCPP XML UUID'
+ obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE'
+ if sys.platform == 'darwin':
+ TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
+ obj.source += 'cocoa_open_uri.mm'
+ obj.uselib += ' OSX'
obj.vnum = LIBPBD_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
obj.cxxflags = ['-DPACKAGE="libpbd"']
- if bld.env['PBD_HAVE_EXECINFO']:
- obj.cxxflags += ['-DHAVE_EXECINFO']
+
+ if bld.env['build_target'] == 'x86_64':
+ obj.cxxflags += [ '-DUSE_X86_64_ASM' ]
+
+ if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']:
+ # Unit tests
+ testobj = bld.new_task_gen('cxx', 'program')
+ testobj.source = '''
+ test/testrunner.cc
+ test/xpath.cc
+ test/scalar_properties.cc
+ '''.split()
+ testobj.target = 'run-tests'
+ testobj.includes = obj.includes + ['test', '../pbd']
+ testobj.uselib = 'CPPUNIT XML SNDFILE'
+ testobj.uselib_local = 'libpbd'
+
def shutdown():
autowaf.shutdown()