X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fmidi%2B%2B2%2Fwscript;h=10a37466e197f77c8ca8157e0f5a1fcf5aae6241;hb=1152bf87a25cc2948514708f7c4a351d041da178;hp=b810bdc80255d6ab8a1646252a297beac0ba14c8;hpb=c1ef7b14a3e1200817180cfaf6425e9bdf0eb51b;p=ardour.git diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index b810bdc802..10a37466e1 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -1,5 +1,6 @@ #!/usr/bin/env python from waflib.extras import autowaf as autowaf +from waflib import Options import os import sys @@ -25,15 +26,27 @@ out = 'build' path_prefix = 'libs/midi++2/' + +libmidi_sources = [ + 'midi.cc', + 'channel.cc', + 'ipmidi_port.cc', + 'parser.cc', + 'port.cc', + 'midnam_patch.cc', + 'mmc.cc', + 'mtc.cc', +] + def options(opt): autowaf.set_options(opt) + opt.add_option('--test', action='store_true', default=False, dest='build_tests', + help="Build unit tests") def configure(conf): conf.load('compiler_cxx') - autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc', - 'midipp', MAJOR, MINOR, MICRO) autowaf.configure(conf) - autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2') + autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') @@ -43,28 +56,37 @@ def configure(conf): def build(bld): # Library - obj = bld(features = 'cxx cxxshlib') - obj.source = ''' - midi.cc - channel.cc - manager.cc - parser.cc - port.cc - midnam_patch.cc - mmc.cc - mtc.cc - version.cc - ''' + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj = bld.shlib(features = 'cxx cxxshlib', source=libmidi_sources) + obj.defines = [ 'LIBMIDIPP_DLL_EXPORTS=1' ] + else: + obj = bld.stlib(features = 'cxx cxxstlib', source=libmidi_sources) + obj.cxxflags = [ '-fPIC' ] + obj.defines = [] + # everybody loves JACK - obj.cxxflags = [ '-DWITH_JACK_MIDI' ] obj.export_includes = ['.'] - obj.includes = ['.', '../surfaces/control_protocol'] + obj.includes = ['.', '../surfaces/control_protocol', '../ardour' ] obj.name = 'libmidipp' obj.target = 'midipp' - obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' + obj.uselib = 'GLIBMM SIGCPP XML OSX' obj.use = 'libpbd libevoral libtimecode' obj.vnum = LIBMIDIPP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj.install_path = bld.env['LIBDIR'] + + if bld.env['BUILD_TESTS'] and bld.is_defined('HAVE_CPPUNIT'): + # Unit tests + obj = bld(features = 'cxx cxxprogram') + obj.source = ''' + test/MidnamTest.cpp + test/testrunner.cpp + ''' + obj.includes = ['.', './src'] + obj.use = 'libmidipp' + obj.uselib = 'CPPUNIT XML' + obj.target = 'run-tests' + obj.name = 'libmidipp-tests' + obj.install_path = '' def shutdown(): autowaf.shutdown()