856f8be1198e5b5b2c2a70dc7a6d3d95f9ebcab2
[ardour.git] / libs / audiographer / wscript
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 import autowaf
4 import os
5
6 # Version of this package (even if built as a child)
7 AUDIOGRAPHER_VERSION = '0.0.0'
8
9 # Library version (UNIX style major, minor, micro)
10 # major increment <=> incompatible changes
11 # minor increment <=> compatible changes (additions)
12 # micro increment <=> no interface changes
13 # Version history:
14 #   0.0.0 = 0,0,0
15 AUDIOGRAPHER_LIB_VERSION = '0.0.0'
16
17 # Variables for 'waf dist'
18 APPNAME = 'audiographer'
19 VERSION = AUDIOGRAPHER_VERSION
20
21 # Mandatory variables
22 srcdir = '.'
23 blddir = 'build'
24
25 def set_options(opt):
26         autowaf.set_options(opt)
27
28 def configure(conf):
29         autowaf.configure(conf)
30         
31         conf.check_tool('compiler_cxx')
32         
33         autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False)
34         autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0', mandatory=False)
35         autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2', mandatory=False)
36         autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0', mandatory=False)
37         autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0', mandatory=False)
38         autowaf.check_pkg(conf, 'samplerate', uselib_store='SAMPLERATE', atleast_version='0.1.7', mandatory=False)
39         autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18', mandatory=False)
40         
41         # Boost headers
42         autowaf.check_header(conf, 'boost/shared_ptr.hpp')
43         autowaf.check_header(conf, 'boost/format.hpp')
44
45 def build(bld):
46
47         # Headers
48         #bld.install_files('${INCLUDEDIR}/audiographer', 'audiographer/*.h')
49         #bld.install_files('${INCLUDEDIR}/audiographer/general', 'audiographer/general/*.h')
50         #bld.install_files('${INCLUDEDIR}/audiographer/sndfile', 'audiographer/sndfile/*.h')
51         #bld.install_files('${INCLUDEDIR}/audiographer/utils', 'audiographer/utils/*.h')
52         
53         #bld.env['BUILD_TESTS'] = True
54         bld.env['HAVE_ALL_GTHREAD'] = bld.env['HAVE_GLIB'] and bld.env['HAVE_GLIBMM'] and bld.env['HAVE_GTHREAD']
55
56         audiographer = bld.new_task_gen('cxx', 'shlib')
57         audiographer.source = '''
58                 private/gdither/gdither.cc
59                 src/general/sample_format_converter.cc
60                 src/routines.cc
61                 src/debug_utils.cc
62                 src/general/broadcast_info.cc
63         '''
64         
65         if bld.env['HAVE_SAMPLERATE']:
66                 audiographer.source += '''
67                         src/general/sr_converter.cc
68                 '''
69         
70         audiographer.name           = 'libaudiographer'
71         audiographer.target         = 'audiographer'
72         audiographer.export_incdirs = ['.', './src']
73         audiographer.includes       = ['.', './src']
74         audiographer.uselib         = 'GLIB GLIBMM GTHREAD SAMPLERATE SNDFILE'
75         audiographer.uselib_local   = 'libpbd'
76         audiographer.vnum           = AUDIOGRAPHER_LIB_VERSION
77         audiographer.install_path   = os.path.join(bld.env['LIBDIR'], 'ardour3')
78         
79
80         if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']:
81                 # Unit tests
82                 obj              = bld.new_task_gen('cxx', 'program')
83                 obj.source       = '''
84                         tests/test_runner.cc
85                         tests/type_utils_test.cc
86                         tests/utils/identity_vertex_test.cc
87                         tests/general/interleaver_test.cc
88                         tests/general/deinterleaver_test.cc
89                         tests/general/interleaver_deinterleaver_test.cc
90                         tests/general/chunker_test.cc
91                         tests/general/sample_format_converter_test.cc
92                         tests/general/peak_reader_test.cc
93                         tests/general/normalizer_test.cc
94                         tests/general/silence_trimmer_test.cc
95                 '''
96                 
97                 if bld.env['HAVE_ALL_GTHREAD']:
98                         obj.source += '''
99                                 tests/general/threader_test.cc
100                         '''
101                 
102                 if bld.env['HAVE_SNDFILE']:
103                         obj.source += '''
104                                 tests/sndfile/tmp_file_test.cc
105                         '''
106
107                 if bld.env['HAVE_SAMPLERATE']:
108                         obj.source += '''
109                                 tests/general/sr_converter_test.cc
110                         '''
111                 
112                 obj.uselib_local = 'libaudiographer'
113                 obj.uselib       = 'CPPUNIT GLIBMM'
114                 obj.target       = 'run-tests'
115                 obj.install_path = ''
116
117 def shutdown():
118         autowaf.shutdown()
119