#!/usr/bin/env python from waflib.extras import autowaf as autowaf from waflib import Options import os # Mandatory variables top = '.' out = 'build' # Version of this package (even if built as a child) MAJOR = '0' MINOR = '0' MICRO = '0' TEMPORAL_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO) # Library version (UNIX style major, minor, micro) # major increment <=> incompatible changes # minor increment <=> compatible changes (additions) # micro increment <=> no interface changes TEMPORAL_LIB_VERSION = '0.0.0' # Variables for 'waf dist' APPNAME = 'temporal' VERSION = TEMPORAL_VERSION I18N_PACKAGE = 'libtemporal' temporal_sources = [ 'debug.cc', 'bbt_time.cc', 'beats.cc', 'enums.cc', 'range.cc', 'superclock.cc', 'tempo.cc', 'time.cc', 'timeline.cc', ] def options(opt): autowaf.set_options(opt) def configure(conf): pass def build(bld): # Library if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'cxx cxxshlib', source=temporal_sources) obj.defines = [ 'LIBTEMPORAL_DLL_EXPORTS=1' ] else: obj = bld.stlib(features = 'cxx cxxstlib', source=temporal_sources) obj.cxxflags = [ bld.env['compiler_flags_dict']['pic'] ] obj.cflags = [ bld.env['compiler_flags_dict']['pic'] ] obj.defines = [ ] obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libtemporal' obj.target = 'temporal' obj.vnum = TEMPORAL_LIB_VERSION obj.install_path = bld.env['LIBDIR'] obj.defines += [ 'PACKAGE="' + I18N_PACKAGE + '"' ] obj.uselib = [ 'GLIBMM', 'XML', 'OSX' ] obj.use = [ 'libpbd' ] if bld.env['BUILD_TESTS'] and bld.is_defined('HAVE_CPPUNIT'): # Static library (for unit test code coverage) obj = bld(features = 'cxx cstlib') obj.source = temporal_sources obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libtemporal_static' obj.target = 'temporal_static' obj.uselib = 'GLIBMM GTHREAD XML LIBPBD' obj.use = 'libpbd' obj.vnum = TEMPORAL_VERSION obj.install_path = '' if bld.env['TEST_COVERAGE']: obj.linkflags = ['--coverage'] obj.cflags = ['--coverage'] obj.cxxflags = ['--coverage'] obj.defines = ['PACKAGE="libevoral"'] # Unit tests obj = bld(features = 'cxx cxxprogram') obj.source = ''' test/BeatTest.cc test/BBTTest.cc test/TempoMapTest.cc test/TimelineTest.cc test/testrunner.cc ''' obj.includes = ['.'] obj.use = 'libtemporal_static' obj.uselib = 'GLIBMM GTHREAD XML LIBPBD CPPUNIT' obj.target = 'run-tests' obj.name = 'libtemporal-tests' obj.install_path = '' obj.defines = ['PACKAGE="libtemporaltest"'] if bld.env['TEST_COVERAGE']: obj.linkflags = ['--coverage'] obj.cflags = ['--coverage'] obj.cxxflags = ['--coverage'] if bld.is_defined('NEED_INTL'): obj.linkflags = ' -lintl' def test(ctx): autowaf.pre_test(ctx, APPNAME) print(os.getcwd()) os.environ['EVORAL_TEST_PATH'] = os.path.abspath('../test/testdata/') autowaf.run_tests(ctx, APPNAME, ['./run-tests']) autowaf.post_test(ctx, APPNAME) def shutdown(): autowaf.shutdown()