2 from waflib.extras import autowaf as autowaf
3 from waflib import Options
4 from waflib import TaskGen
7 # Version of this package (even if built as a child)
11 CANVAS_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO)
13 # Library version (UNIX style major, minor, micro)
14 # major increment <=> incompatible changes
15 # minor increment <=> compatible changes (additions)
16 # micro increment <=> no interface changes
17 CANVAS_LIB_VERSION = '0.0.0'
19 # Variables for 'waf dist'
21 VERSION = CANVAS_VERSION
22 I18N_PACKAGE = 'libcanvas'
28 path_prefix = 'libs/canvas/'
60 autowaf.set_options(opt)
63 conf.load ('compiler_cxx')
64 autowaf.configure(conf)
65 autowaf.build_version_files(path_prefix+'canvas/version.h', path_prefix+'version.cc',
66 'libcanvas', conf.env['MAJOR'], conf.env['MINOR'], 0,
67 'LIBCANVAS_API', 'canvas/visibility.h')
68 autowaf.check_pkg(conf, 'cairomm-1.0', uselib_store='CAIROMM', atleast_version='1.8.4')
72 if bld.is_defined ('INTERNAL_SHARED_LIBS'):
73 obj = bld.shlib(features = 'cxx cxxshlib', source=canvas_sources)
74 obj.defines = [ 'LIBCANVAS_DLL_EXPORTS=1' ]
76 obj = bld.stlib(features = 'cxx cxxstlib', source=canvas_sources)
77 obj.cxxflags = [ '-fPIC' ]
78 obj.cflags = [ '-fPIC' ]
80 obj.export_includes = ['.']
82 obj.uselib = 'SIGCPP CAIROMM GTKMM BOOST'
83 obj.use = [ 'libpbd', 'libevoral', 'libardour', 'libgtkmm2ext' ]
84 obj.name = 'libcanvas'
86 obj.vnum = CANVAS_LIB_VERSION
87 obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
88 obj.defines = [ 'PACKAGE="' + I18N_PACKAGE + '"' ]
90 if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']:
101 for t in manual_tests:
103 name = t[t.find('/')+1:-3]
104 manual_testobj = bld.new_task_gen('cxx', 'program')
105 manual_testobj.source = t
106 manual_testobj.includes = obj.includes + ['test', '../pbd']
107 manual_testobj.uselib = 'CPPUNIT SIGCPP CAIROMM GTKMM'
108 manual_testobj.uselib_local = 'libcanvas libevoral libardour libgtkmm2ext'
109 manual_testobj.name = 'libcanvas-manual-test-%s' % name
110 manual_testobj.target = target
111 manual_testobj.install_path = ''
113 unit_testobj = bld.new_task_gen('cxx', 'program')
114 unit_testobj.source = '''
117 test/optimizing_lookup_table.cc
127 unit_testobj.includes = obj.includes + ['test', '../pbd']
128 unit_testobj.uselib = 'CPPUNIT SIGCPP CAIROMM GTKMM'
129 unit_testobj.uselib_local = 'libcanvas libevoral libardour libgtkmm2ext'
130 unit_testobj.name = 'libcanvas-unit-tests'
131 unit_testobj.target = 'run-tests'
132 unit_testobj.install_path = ''
133 unit_testobj.cxxflags = ['-DPACKAGE="libcanvastest"']
134 unit_testobj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"']
135 unit_testobj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"']
136 unit_testobj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"']
139 benchmark/items_at_point.cc
140 benchmark/render_parts.cc
141 benchmark/render_from_log.cc
142 benchmark/render_whole.cc
147 name = t[t.find('/')+1:-3]
148 manual_testobj = bld.new_task_gen('cxx', 'program')
149 manual_testobj.source = [ t, 'benchmark/benchmark.cc' ]
150 manual_testobj.includes = obj.includes + ['test', '../pbd']
151 manual_testobj.uselib = 'CPPUNIT SIGCPP CAIROMM GTKMM'
152 manual_testobj.uselib_local = 'libcanvas libevoral libardour libgtkmm2ext'
153 manual_testobj.name = 'libcanvas-benchmark-%s' % name
154 manual_testobj.target = target
155 manual_testobj.install_path = ''