Version file building stuff.
[ardour.git] / libs / midi++2 / wscript
1 #!/usr/bin/env python
2 import autowaf
3
4 # Version of this package (even if built as a child)
5 MAJOR = '2'
6 MINOR = '1'
7 MICRO = '1'
8 LIBMIDIPP_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO)
9
10 # Library version (UNIX style major, minor, micro)
11 # major increment <=> incompatible changes
12 # minor increment <=> compatible changes (additions)
13 # micro increment <=> no interface changes
14 LIBMIDIPP_LIB_VERSION = '4.1.0'
15
16 # Variables for 'waf dist'
17 APPNAME = 'libmidipp'
18 VERSION = LIBMIDIPP_VERSION
19
20 # Mandatory variables
21 srcdir = '.'
22 blddir = 'build'
23
24 path_prefix = 'libs/midi++2/'
25
26 def set_options(opt):
27         autowaf.set_options(opt)
28
29 def configure(conf):
30         autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc',
31                         'midipp', MAJOR, MINOR, MICRO)
32         autowaf.configure(conf)
33         autowaf.check_tool(conf, 'compiler_cxx')
34         autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.109.0')
35         autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
36         autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0')
37
38         conf.env.append_value('CXXFLAGS', '-DHAVE_WAFCONFIG_H')
39         conf.write_config_header('wafconfig.h')
40
41         # TODO
42         conf.env['SYSMIDI'] = 'JACK MIDI'
43         conf.env.append_value('CXXFLAGS', '-DWITH_JACK_MIDI')
44
45         # Boost headers
46         autowaf.check_header(conf, 'boost/shared_ptr.hpp')
47         autowaf.check_header(conf, 'boost/weak_ptr.hpp')
48
49 def build(bld):
50         # Library
51         obj = bld.new_task_gen('cxx', 'shlib')
52         obj.source = '''
53                 fd_midiport.cc
54                 fifomidi.cc
55                 midi.cc
56                 midichannel.cc
57                 midifactory.cc
58                 midimanager.cc
59                 midiparser.cc
60                 midiport.cc
61                 midnam_patch.cc
62                 mmc.cc
63                 mtc.cc
64                 version.cc
65         '''
66         if bld.env['SYSMIDI'] == 'JACK MIDI':
67                 obj.source += ' jack_midiport.cc '
68         elif bld.env['SYSMIDI'] == 'Alsa Sequencer':
69                 obj.source += ' alsa_sequencer_midiport.cc '
70         elif bld.env['SYSMIDI'] == 'CoreMIDI':
71                 obj.source += ' coremidi_midiport.cc '
72         obj.export_incdirs = ['.']
73         obj.includes     = ['.']
74         obj.name         = 'libmidipp'
75         obj.target       = 'midipp'
76         obj.uselib       = 'GLIBMM SIGCPP XML JACK'
77         obj.uselib_local = 'libpbd libevoral'
78         obj.vnum         = LIBMIDIPP_LIB_VERSION
79         obj.install_path = ''
80         
81 def shutdown():
82         autowaf.shutdown()
83