91577b95c0780ff3dc3e84d3c229916ba9135427
[ardour.git] / libs / evoral / wscript
1 #!/usr/bin/env python
2 import autowaf
3
4 # Version of this package (even if built as a child)
5 EVORAL_VERSION = '0.0.0'
6
7 # Library version (UNIX style major, minor, micro)
8 # major increment <=> incompatible changes
9 # minor increment <=> compatible changes (additions)
10 # micro increment <=> no interface changes
11 # Version history:
12 #   0.0.0 = 0,0,0
13 EVORAL_LIB_VERSION = '0.0.0'
14
15 # Variables for 'waf dist'
16 APPNAME = 'evoral'
17 VERSION = EVORAL_VERSION
18
19 # Mandatory variables
20 srcdir = '.'
21 blddir = 'build'
22
23 def set_options(opt):
24         autowaf.set_options(opt)
25
26 def configure(conf):
27         autowaf.configure(conf)
28         autowaf.check_tool(conf, 'compiler_cxx')
29         autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2', mandatory=True)
30         autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0', mandatory=True)
31         autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0', mandatory=True)
32         autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False)
33
34         # Boost headers
35         autowaf.check_header(conf, 'boost/shared_ptr.hpp', mandatory=True)
36         autowaf.check_header(conf, 'boost/weak_ptr.hpp', mandatory=True)
37
38 def build(bld):
39         # Headers
40         #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.h')
41         #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.hpp')
42         
43         # Pkgconfig file
44         #autowaf.build_pc(bld, 'EVORAL', EVORAL_VERSION, 'GLIBMM GTHREAD')
45         
46         libsmf = bld.new_task_gen('cc', 'shlib')
47         libsmf.source = '''
48                 src/libsmf/smf.c
49                 src/libsmf/smf_decode.c
50                 src/libsmf/smf_load.c
51                 src/libsmf/smf_save.c
52                 src/libsmf/smf_tempo.c
53         '''
54         libsmf.export_incdirs = ['./src/libsmf']
55         libsmf.defines      = 'SMF_VERSION=\\\"1.2\\\"'
56         libsmf.includes     = ['./src']
57         libsmf.name         = 'libsmf'
58         libsmf.target       = 'smf'
59         libsmf.uselib       = 'GLIB'
60         libsmf.install_path = ''
61
62         # Library
63         obj = bld.new_task_gen('cxx', 'shlib')
64         obj.source = '''
65                 src/Control.cpp
66                 src/ControlList.cpp
67                 src/ControlSet.cpp
68                 src/Curve.cpp
69                 src/Event.cpp
70                 src/MIDIEvent.cpp
71                 src/Note.cpp
72                 src/SMF.cpp
73                 src/Sequence.cpp
74         '''
75         obj.export_incdirs = ['.']
76         obj.includes     = ['.', './src']
77         obj.name         = 'libevoral'
78         obj.target       = 'evoral'
79         obj.uselib       = 'GLIBMM GTHREAD SMF'
80         obj.uselib_local = 'libsmf'
81         obj.vnum         = EVORAL_LIB_VERSION
82         obj.install_path = ''
83         
84         if bld.env['HAVE_CPPUNIT']:
85                 # Unit tests
86                 obj              = bld.new_task_gen('cxx', 'program')
87                 obj.source       = '''
88                         test/SequenceTest.cpp
89                         test/SMFTest.cpp
90                         test/testrunner.cpp
91                 '''
92                 obj.includes     = ['.', './src']
93                 obj.uselib_local = 'libevoral'
94                 obj.uselib       = 'CPPUNIT'
95                 obj.target       = 'run-tests'
96                 obj.install_path = ''
97
98 def shutdown():
99         autowaf.shutdown()
100