- # Library
- obj = bld.new_task_gen('cxx', 'shlib')
- 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.env['DEBUG_RT_ALLOC']:
- obj.source += 'debug_rt_alloc.c'
-
- obj.export_incdirs = ['.']
- obj.includes = ['.']
- obj.name = 'libpbd'
- obj.target = 'pbd'
- 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['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
- test/signals_test.cc
- '''.split()
- testobj.target = 'run-tests'
- testobj.includes = obj.includes + ['test', '../pbd']
- testobj.uselib = 'CPPUNIT XML SNDFILE'
- testobj.uselib_local = 'libpbd'
+
+ # Make signals_generated.h using signals.py
+ bld(rule = 'python ${SRC} ${TGT}', source = 'pbd/signals.py', target = 'pbd/signals_generated.h')
+
+ # Library
+ 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.export_includes = ['.']
+ obj.includes = ['.']
+ obj.name = 'libpbd'
+ obj.target = 'pbd'
+ 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.uselib += ' OSX'
+ obj.vnum = LIBPBD_LIB_VERSION
+ obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
+ obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"']
+
+ if bld.env['build_target'] == 'x86_64':
+ obj.defines += [ 'USE_X86_64_ASM' ]
+
+ if bld.env['BUILD_TESTS'] and bld.is_defined('HAVE_CPPUNIT'):
+ # Unit tests
+ testobj = bld(features = 'cxx cxxprogram')
+ testobj.source = '''
+ test/testrunner.cc
+ test/xpath.cc
+ test/scalar_properties.cc
+ test/signals_test.cc
+ test/convert_test.cc
+ test/filesystem_test.cc
+ test/test_common.cc
+ '''.split()
+ testobj.target = 'run-tests'
+ testobj.includes = obj.includes + ['test', '../pbd']
+ testobj.uselib = 'CPPUNIT XML SNDFILE'
+ testobj.use = 'libpbd'
+ testobj.name = 'libpbd-tests'
+ if sys.platform != 'darwin':
+ testobj.linkflags = ['-lrt']