X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fmidi%2B%2B2%2Fwscript;h=ea8988110def73850b53a7ce86246af1af8d6ee1;hb=eedcd83dbd5292ed0507e0ffda4faf197ddd6c2b;hp=aa6f8a67ca03749e4f9eeaee39e0e63d5f069fa5;hpb=91850f0eb4ab9f63bc6582d042d5495ea1968031;p=ardour.git diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index aa6f8a67ca..ea8988110d 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -1,5 +1,6 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf +from waflib import Options import os import sys @@ -20,52 +21,74 @@ APPNAME = 'libmidipp' VERSION = LIBMIDIPP_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'libs/midi++2/' -def set_options(opt): - autowaf.set_options(opt) +libmidi_sources = [ + 'midi.cc', + 'channel.cc', + 'ipmidi_port.cc', + 'jack_midi_port.cc', + 'manager.cc', + 'parser.cc', + 'port.cc', + 'midnam_patch.cc', + 'mmc.cc', + 'mtc.cc', + 'version.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): - autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc', - 'midipp', MAJOR, MINOR, MICRO) - autowaf.configure(conf) - conf.check_tool('compiler_cxx') - autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2') - autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') - autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') + 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, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) + autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2') + autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') + autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') - # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') + # Boost headers + autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - midi.cc - channel.cc - manager.cc - parser.cc - port.cc - midnam_patch.cc - mmc.cc - mtc.cc - version.cc - ''' - # everybody loves JACK - obj.cxxflags = [ '-DWITH_JACK_MIDI' ] - obj.export_incdirs = ['.'] - obj.includes = ['.', '../surfaces/control_protocol'] - obj.name = 'libmidipp' - obj.target = 'midipp' - obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' - obj.uselib_local = 'libpbd libevoral' - obj.vnum = LIBMIDIPP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + # Library + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj = bld.shlib(features = 'cxx cxxshlib', source=libmidi_sources) + else: + obj = bld.stlib(features = 'cxx cxxstlib', source=libmidi_sources) + obj.cxxflags = [ '-fPIC', '-DWITH_JACK_MIDI' ] + # everybody loves JACK + obj.export_includes = ['.'] + obj.includes = ['.', '../surfaces/control_protocol'] + obj.name = 'libmidipp' + obj.target = 'midipp' + obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' + obj.use = 'libpbd libevoral libtimecode' + obj.vnum = LIBMIDIPP_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') -def shutdown(): - autowaf.shutdown() + 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()