X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fmidi%2B%2B2%2Fwscript;h=10a37466e197f77c8ca8157e0f5a1fcf5aae6241;hb=7af5de2074a5bac7bc43f68d6784e436069fae99;hp=789daa43bca03837a0618162d758447a491279dd;hpb=0c0e689d3c4d61b670198db481839e912407293f;p=ardour.git diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index 789daa43bc..10a37466e1 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -1,8 +1,14 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf +from waflib import Options +import os +import sys # Version of this package (even if built as a child) -LIBMIDIPP_VERSION = '0.0.0' +MAJOR = '2' +MINOR = '1' +MICRO = '1' +LIBMIDIPP_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO) # Library version (UNIX style major, minor, micro) # major increment <=> incompatible changes @@ -15,64 +21,72 @@ APPNAME = 'libmidipp' VERSION = LIBMIDIPP_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): - autowaf.set_options(opt) +path_prefix = 'libs/midi++2/' -def configure(conf): - autowaf.configure(conf) - autowaf.check_tool(conf, 'compiler_cxx') - autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2') - autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0') - autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') - autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') - autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.109.0') - conf.env.append_value('CXXFLAGS', '-DHAVE_WAFCONFIG_H') - conf.write_config_header('wafconfig.h') +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") - # TODO - conf.env['SYSMIDI'] = 'JACK MIDI' - conf.env.append_value('CXXFLAGS', '-DWITH_JACK_MIDI') +def configure(conf): + conf.load('compiler_cxx') + autowaf.configure(conf) + 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') - # 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 = ''' - fd_midiport.cc - fifomidi.cc - midi.cc - midichannel.cc - midifactory.cc - midimanager.cc - midiparser.cc - midiport.cc - midnam_patch.cc - mmc.cc - mtc.cc - version.cc - ''' - if bld.env['SYSMIDI'] == 'JACK MIDI': - obj.source += ' jack_midiport.cc ' - elif bld.env['SYSMIDI'] == 'Alsa Sequencer': - obj.source += ' alsa_sequencer_midiport.cc ' - elif bld.env['SYSMIDI'] == 'CoreMIDI': - obj.source += ' coremidi_midiport.cc ' - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libmidipp' - obj.target = 'midipp' - obj.uselib = 'GLIBMM SIGCPP XML JACK' - obj.uselib_local = 'libpbd libevoral' - obj.vnum = LIBMIDIPP_LIB_VERSION - obj.install_path = '' - -def shutdown(): - autowaf.shutdown() + # Library + 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.export_includes = ['.'] + obj.includes = ['.', '../surfaces/control_protocol', '../ardour' ] + obj.name = 'libmidipp' + obj.target = 'midipp' + obj.uselib = 'GLIBMM SIGCPP XML OSX' + obj.use = 'libpbd libevoral libtimecode' + obj.vnum = LIBMIDIPP_LIB_VERSION + 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()