13
0
livetrax/libs/midi++2/wscript
Paul Davis 683496c501 use libltc and libtimecode as static libs, and upgrade to waf 1.7
This is slightly awkward. It is important that we only link once to the static lib. Doing this at executable link time did not
work, possibly because waf insisted on putting the two static libraries at the front of the link list. So instead libardour
is now the point where linkage to these libraries occurs (and nowhere else). This should never be changed unless the change
just moves the linkage point to another location.

Also fix a bug with the libardour version tha was picked up by waf 1.7
2013-10-18 11:11:59 -04:00

100 lines
3.3 KiB
Python

#!/usr/bin/env python
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)
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
# minor increment <=> compatible changes (additions)
# micro increment <=> no interface changes
LIBMIDIPP_LIB_VERSION = '4.1.0'
# Variables for 'waf dist'
APPNAME = 'libmidipp'
VERSION = LIBMIDIPP_VERSION
# Mandatory variables
top = '.'
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',
'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):
conf.load('compiler_cxx')
autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc',
'midipp', MAJOR, MINOR, MICRO, 'LIBMIDIPP_API', 'midi++/libmidi_visibility.h')
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, 'cxx', 'boost/shared_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp')
def build(bld):
# Library
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'cxx cxxshlib', source=libmidi_sources)
obj.defines = [ 'LIBMIDIPP_DLL=1', 'LIBMIDIPP_DLL_EXPORTS=1' ]
obj.defines += [ 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
obj.cxxflags = [ '-fvisibility=hidden' ]
obj.cflags = [ '-fvisibility=hidden' ]
else:
obj = bld.stlib(features = 'cxx cxxstlib', source=libmidi_sources)
obj.cxxflags = [ '-fPIC', '-DWITH_JACK_MIDI' ]
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 JACK OSX'
obj.use = 'libpbd libevoral timecode_includes'
obj.vnum = LIBMIDIPP_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
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()