13
0
livetrax/libs/temporal/wscript
Paul Davis 04bd9187e4 temporal: add (back) first set of unit tests
This just uses the old Evoral BeatTest. Some of the tests needed amending
because temporal uses rint() to convert between float and int, not just
a cast.
2022-02-12 15:12:35 -07:00

111 lines
3.4 KiB
Python

#!/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/beats.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']
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()