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