#!/usr/bin/env python
from waflib.extras import autowaf as autowaf
+from waflib import Options
from waflib import TaskGen
import os
import sys
path_prefix = 'libs/pbd/'
+libpbd_sources = [
+ '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',
+ 'enums.cc',
+ 'epa.cc',
+ 'error.cc',
+ 'file_manager.cc',
+ 'file_utils.cc',
+ 'fpu.cc',
+ 'id.cc',
+ 'locale_guard.cc',
+ 'malign.cc',
+ 'mountpoint.cc',
+ 'openuri.cc',
+ 'pathexpand.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',
+ 'textreceiver.cc',
+ 'transmitter.cc',
+ 'undo.cc',
+ 'uuid.cc',
+ 'version.cc',
+ 'whitespace.cc',
+ 'xml++.cc',
+]
+
def options(opt):
autowaf.set_options(opt)
conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT',mandatory=False)
conf.check(header_name='execinfo.h', define_name='HAVE_EXECINFO',mandatory=False)
conf.check(header_name='unistd.h', define_name='HAVE_UNISTD',mandatory=False)
- if conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', cflags='-D_XOPEN_SOURCE=600',mandatory=False) == False:
- conf.define ('NO_POSIX_MEMALIGN',1)
+ conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', cflags='-D_XOPEN_SOURCE=600', define_name='HAVE_POSIX_MEMALIGN', mandatory=False)
conf.write_config_header('libpbd-config.h', remove=False)
# autowaf.check_header(conf, 'cxx', 'boost/uuid/uuid.hpp')
def build(bld):
+
+ # Make signals_generated.h using signals.py
+ bld(rule = 'python ${SRC} ${TGT}', source = 'pbd/signals.py', target = 'pbd/signals_generated.h')
+
# Library
- obj = bld(features = 'cxx cxxshlib')
- 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
- epa.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
- textreceiver.cc
- transmitter.cc
- undo.cc
- uuid.cc
- version.cc
- whitespace.cc
- xml++.cc
- '''
+ if bld.is_defined ('INTERNAL_SHARED_LIBS'):
+ print('BUILD SHARED LIB')
+ obj = bld.shlib(features = 'cxx cxxshlib', source=libpbd_sources)
+ else:
+ print('BUILD STATIC LIB')
+ obj = bld.stlib(features = 'cxx cxxstlib', source=libpbd_sources)
+ obj.cxxflags = [ '-fPIC' ]
if bld.is_defined('DEBUG_RT_ALLOC'):
obj.source += 'debug_rt_alloc.c'
obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE GIOMM'
if sys.platform == 'darwin':
TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
- obj.source += 'cocoa_open_uri.mm'
+ obj.source += [ 'cocoa_open_uri.mm' ]
obj.uselib += ' OSX'
obj.vnum = LIBPBD_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
test/scalar_properties.cc
test/signals_test.cc
test/convert_test.cc
+ test/filesystem_test.cc
'''.split()
testobj.target = 'run-tests'
testobj.includes = obj.includes + ['test', '../pbd']
testobj.uselib = 'CPPUNIT XML SNDFILE'
testobj.use = 'libpbd'
- testobj.linkflags = ['-lrt']
+ testobj.name = 'libpbd-tests'
+ if sys.platform != 'darwin':
+ testobj.linkflags = ['-lrt']
def shutdown():