2010-12-13 15:46:07 -05:00
|
|
|
#!/usr/bin/env python
|
2011-09-29 15:17:54 -04:00
|
|
|
from waflib.extras import autowaf as autowaf
|
2011-09-29 15:58:05 -04:00
|
|
|
from waflib import Options
|
2010-12-13 15:46:07 -05:00
|
|
|
import os
|
|
|
|
|
|
|
|
# Mandatory variables
|
2011-09-29 15:17:54 -04:00
|
|
|
top = '.'
|
|
|
|
out = 'build'
|
2010-12-13 15:46:07 -05:00
|
|
|
|
2017-09-25 12:13:46 -04:00
|
|
|
# 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'
|
|
|
|
|
2022-01-24 18:23:43 -05:00
|
|
|
temporal_sources = [
|
2020-08-05 18:10:46 -04:00
|
|
|
'debug.cc',
|
|
|
|
'bbt_time.cc',
|
2020-12-08 22:32:20 -05:00
|
|
|
'beats.cc',
|
2023-08-16 18:33:17 -04:00
|
|
|
'domain.cc',
|
2020-09-20 18:33:43 -04:00
|
|
|
'enums.cc',
|
2020-11-28 00:32:02 -05:00
|
|
|
'range.cc',
|
|
|
|
'superclock.cc',
|
2020-08-05 18:10:46 -04:00
|
|
|
'tempo.cc',
|
|
|
|
'time.cc',
|
|
|
|
'timeline.cc',
|
|
|
|
]
|
2017-09-25 12:13:46 -04:00
|
|
|
|
2011-09-29 15:17:54 -04:00
|
|
|
def options(opt):
|
2011-04-22 18:15:21 -04:00
|
|
|
autowaf.set_options(opt)
|
2010-12-13 15:46:07 -05:00
|
|
|
|
|
|
|
def configure(conf):
|
2022-01-22 16:09:13 -05:00
|
|
|
pass
|
2010-12-13 15:46:07 -05:00
|
|
|
|
|
|
|
def build(bld):
|
2017-09-25 12:13:46 -04:00
|
|
|
# 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)
|
2020-01-13 18:52:01 -05:00
|
|
|
obj.cxxflags = [ bld.env['compiler_flags_dict']['pic'] ]
|
|
|
|
obj.cflags = [ bld.env['compiler_flags_dict']['pic'] ]
|
|
|
|
obj.defines = [ ]
|
2017-09-25 12:13:46 -04:00
|
|
|
|
|
|
|
obj.export_includes = ['.']
|
|
|
|
obj.includes = ['.']
|
|
|
|
obj.name = 'libtemporal'
|
|
|
|
obj.target = 'temporal'
|
|
|
|
obj.vnum = TEMPORAL_LIB_VERSION
|
|
|
|
obj.install_path = bld.env['LIBDIR']
|
2020-07-23 13:21:53 -04:00
|
|
|
obj.defines += [ 'PACKAGE="' + I18N_PACKAGE + '"' ]
|
2021-03-29 13:21:40 -04:00
|
|
|
obj.uselib = [ 'GLIBMM', 'XML', 'OSX' ]
|
2020-07-23 13:21:53 -04:00
|
|
|
obj.use = [ 'libpbd' ]
|
2010-12-13 15:46:07 -05:00
|
|
|
|
2022-02-12 17:12:24 -05:00
|
|
|
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'
|
2023-01-12 14:10:21 -05:00
|
|
|
obj.vnum = TEMPORAL_LIB_VERSION
|
2022-02-12 17:12:24 -05:00
|
|
|
obj.install_path = ''
|
|
|
|
if bld.env['TEST_COVERAGE']:
|
|
|
|
obj.linkflags = ['--coverage']
|
|
|
|
obj.cflags = ['--coverage']
|
|
|
|
obj.cxxflags = ['--coverage']
|
2023-01-12 14:10:21 -05:00
|
|
|
obj.defines = ['PACKAGE="libtemporal"']
|
2022-02-12 17:12:24 -05:00
|
|
|
|
|
|
|
# Unit tests
|
|
|
|
obj = bld(features = 'cxx cxxprogram')
|
2022-10-01 10:50:28 -04:00
|
|
|
obj.source = [
|
|
|
|
'test/BeatTest.cc',
|
|
|
|
'test/BBTTest.cc',
|
|
|
|
'test/TempoMapTest.cc',
|
2023-05-04 20:48:50 -04:00
|
|
|
'test/TempoMapCutBufferTest.cc',
|
2022-10-01 10:50:28 -04:00
|
|
|
'test/TimelineTest.cc',
|
|
|
|
'test/RangeTest.cc',
|
|
|
|
'test/testrunner.cc',
|
|
|
|
]
|
2022-02-12 17:12:24 -05:00
|
|
|
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']
|
2022-09-28 17:05:56 -04:00
|
|
|
if bld.is_defined('NEED_INTL'):
|
|
|
|
obj.linkflags = ' -lintl'
|
2022-02-12 17:12:24 -05:00
|
|
|
|
|
|
|
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)
|
|
|
|
|
2010-12-13 15:46:07 -05:00
|
|
|
def shutdown():
|
2011-04-22 18:15:21 -04:00
|
|
|
autowaf.shutdown()
|