6b61b03434
autowaf has no real shutdown functionality anyway. The automatic shutdown function that could have been called wouldn't work anyway, as it takes an argument. The only reason it doesn't fail is that the top level wscript has no shutdown handling and doesn't recurse to other scripts, so it is all dead code.
153 lines
5.5 KiB
Python
153 lines
5.5 KiB
Python
#!/usr/bin/env python
|
|
from waflib.extras import autowaf as autowaf
|
|
import os
|
|
|
|
# Version of this package (even if built as a child)
|
|
MAJOR = '0'
|
|
MINOR = '0'
|
|
MICRO = '0'
|
|
CANVAS_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
|
|
CANVAS_LIB_VERSION = '0.0.0'
|
|
|
|
I18N_PACKAGE = 'libcanvas'
|
|
|
|
canvas_sources = [
|
|
'arc.cc',
|
|
'arrow.cc',
|
|
'box.cc',
|
|
'canvas.cc',
|
|
'circle.cc',
|
|
'container.cc',
|
|
'curve.cc',
|
|
'debug.cc',
|
|
'item.cc',
|
|
'fill.cc',
|
|
'flag.cc',
|
|
'framed_curve.cc',
|
|
'grid.cc',
|
|
'image.cc',
|
|
'line.cc',
|
|
'line_set.cc',
|
|
'lollipop.cc',
|
|
'lookup_table.cc',
|
|
'meter.cc',
|
|
'note.cc',
|
|
'outline.cc',
|
|
'pixbuf.cc',
|
|
'poly_item.cc',
|
|
'poly_line.cc',
|
|
'polygon.cc',
|
|
'rectangle.cc',
|
|
'root_group.cc',
|
|
'ruler.cc',
|
|
'scroll_group.cc',
|
|
'stateful_image.cc',
|
|
'step_button.cc',
|
|
'table.cc',
|
|
'text.cc',
|
|
'tracking_text.cc',
|
|
'types.cc',
|
|
'utils.cc',
|
|
'widget.cc',
|
|
'xfade_curve.cc',
|
|
]
|
|
|
|
def options(opt):
|
|
pass
|
|
|
|
def configure(conf):
|
|
autowaf.check_pkg(conf, 'cairomm-1.0', uselib_store='CAIROMM', atleast_version='1.8.4')
|
|
|
|
def build(bld):
|
|
# Library
|
|
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
|
|
obj = bld.shlib(features = 'cxx cxxshlib', source=canvas_sources)
|
|
obj.defines = [ 'LIBCANVAS_DLL_EXPORTS=1' ]
|
|
else:
|
|
obj = bld.stlib(features = 'cxx cxxstlib', source=canvas_sources)
|
|
obj.cxxflags = [ bld.env['compiler_flags_dict']['pic'] ]
|
|
obj.cflags = [ bld.env['compiler_flags_dict']['pic'] ]
|
|
obj.defines = [ ]
|
|
|
|
obj.export_includes = ['.']
|
|
obj.includes = ['.']
|
|
obj.uselib = 'SIGCPP CAIROMM GTKMM BOOST XML OSX'
|
|
obj.use = [ 'libpbd', 'libgtkmm2ext' ]
|
|
obj.name = 'libcanvas'
|
|
obj.target = 'canvas'
|
|
obj.vnum = CANVAS_LIB_VERSION
|
|
obj.install_path = bld.env['LIBDIR']
|
|
obj.defines += [ 'PACKAGE="' + I18N_PACKAGE + '"' ]
|
|
|
|
# canvas unit-tests are outdated
|
|
if False and bld.env['BUILD_TESTS'] and bld.is_defined('HAVE_CPPUNIT'):
|
|
unit_testobj = bld(features = 'cxx cxxprogram')
|
|
unit_testobj.source = '''
|
|
test/group.cc
|
|
test/arrow.cc
|
|
test/optimizing_lookup_table.cc
|
|
test/polygon.cc
|
|
test/types.cc
|
|
test/render.cc
|
|
test/xml.cc
|
|
test/wave_view.cc
|
|
test/item.cc
|
|
test/testrunner.cpp
|
|
'''.split()
|
|
|
|
unit_testobj.includes = obj.includes + ['test', '../pbd']
|
|
unit_testobj.uselib = 'CPPUNIT SIGCPP CAIROMM GTKMM'
|
|
unit_testobj.uselib_local = 'libcanvas libgtkmm2ext'
|
|
unit_testobj.name = 'libcanvas-unit-tests'
|
|
unit_testobj.target = 'run-tests'
|
|
unit_testobj.install_path = ''
|
|
unit_testobj.cxxflags = ['-DPACKAGE="libcanvastest"']
|
|
unit_testobj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"']
|
|
unit_testobj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFDIR']) + '"']
|
|
unit_testobj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"']
|
|
|
|
manual_tests = '''
|
|
test/hello_world.cc
|
|
test/gtk_many.cc
|
|
test/gtk_scene.cc
|
|
test/gtk_movement.cc
|
|
test/gtk_viewport.cc
|
|
test/gtk_drag.cc
|
|
'''.split()
|
|
|
|
for t in manual_tests:
|
|
target = t[:-3]
|
|
name = t[t.find('/')+1:-3]
|
|
manual_testobj = bld(features = 'cxx cxxprogram')
|
|
manual_testobj.source = t
|
|
manual_testobj.includes = obj.includes + ['test', '../pbd']
|
|
manual_testobj.uselib = 'CPPUNIT SIGCPP CAIROMM GTKMM'
|
|
manual_testobj.uselib_local = 'libcanvas libgtkmm2ext'
|
|
manual_testobj.name = 'libcanvas-manual-test-%s' % name
|
|
manual_testobj.target = target
|
|
manual_testobj.install_path = ''
|
|
|
|
benchmarks = '''
|
|
benchmark/items_at_point.cc
|
|
benchmark/render_parts.cc
|
|
benchmark/render_from_log.cc
|
|
benchmark/render_whole.cc
|
|
'''.split()
|
|
|
|
for t in benchmarks:
|
|
target = t[:-3]
|
|
name = t[t.find('/')+1:-3]
|
|
manual_testobj = bld(features = 'cxx cxxprogram')
|
|
manual_testobj.source = [ t, 'benchmark/benchmark.cc' ]
|
|
manual_testobj.includes = obj.includes + ['test', '../pbd']
|
|
manual_testobj.uselib = 'CPPUNIT SIGCPP CAIROMM GTKMM'
|
|
manual_testobj.uselib_local = 'libcanvas libgtkmm2ext'
|
|
manual_testobj.name = 'libcanvas-benchmark-%s' % name
|
|
manual_testobj.target = target
|
|
manual_testobj.install_path = ''
|