Include stripped down libsmf code internally.
[ardour.git] / libs / evoral / wscript
index 1b05ce0bfa556eed13e6ff1325189d31f2859f5b..8c0202ee94f1175d844e971fc1a2626333c8d7f5 100644 (file)
@@ -1,31 +1,62 @@
 #!/usr/bin/env python
-import Params
+import autowaf
+
+# Version of this package (even if built as a child)
+EVORAL_VERSION = '0.0.0'
+
+# Library version (UNIX style major, minor, micro)
+# major increment <=> incompatible changes
+# minor increment <=> compatible changes (additions)
+# micro increment <=> no interface changes
+# Version history:
+#   0.0.0 = 0,0,0
+EVORAL_LIB_VERSION = '0.0.0'
 
 # Variables for 'waf dist'
-VERSION = '0.0.1'
 APPNAME = 'evoral'
+VERSION = EVORAL_VERSION
 
 # Mandatory variables
 srcdir = '.'
 blddir = 'build'
 
 def set_options(opt):
-       opt.tool_options('compiler_cxx')
+       autowaf.set_options(opt)
 
 def configure(conf):
-       if not conf.env['GLIBMM']:
-               conf.check_pkg('glibmm-2.4', destvar='GLIBMM', vnum='2.16.0', mandatory=True)
-       if not conf.env['GTHREAD']:
-               conf.check_pkg('gthread-2.0', destvar='GTHREAD', vnum='2.16.0', mandatory=True)
-       if not conf.env['CXX']:
-               conf.check_tool('compiler_cxx')
+       autowaf.configure(conf)
+       autowaf.check_tool(conf, 'compiler_cxx')
+       autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2', mandatory=True)
+       autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0', mandatory=True)
+       autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0', mandatory=True)
+       autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False)
 
 def build(bld):
-       # Headers (evoral)
-       install_files('PREFIX', 'include/evoral', 'evoral/*.hpp')
+       # Headers
+       #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.h')
+       #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.hpp')
        
-       # Library (src)
-       obj = bld.create_obj('cpp', 'shlib')
+       # Pkgconfig file
+       #autowaf.build_pc(bld, 'EVORAL', EVORAL_VERSION, 'GLIBMM GTHREAD')
+       
+       libsmf = bld.new_task_gen('cc', 'shlib')
+       libsmf.source = '''
+               src/libsmf/smf.c
+               src/libsmf/smf_decode.c
+               src/libsmf/smf_load.c
+               src/libsmf/smf_save.c
+               src/libsmf/smf_tempo.c
+       '''
+       libsmf.export_incdirs = ['./src/libsmf']
+       libsmf.defines      = 'SMF_VERSION=\\\"1.2\\\"'
+       libsmf.includes     = ['./src']
+       libsmf.name         = 'libsmf'
+       libsmf.target       = 'smf'
+       libsmf.uselib       = 'GLIB'
+       libsmf.install_path = ''
+
+       # Library
+       obj = bld.new_task_gen('cxx', 'shlib')
        obj.source = '''
                src/Control.cpp
                src/ControlList.cpp
@@ -36,19 +67,31 @@ def build(bld):
                src/Note.cpp
                src/SMF.cpp
                src/SMFReader.cpp
+               src/LibSMF.cpp
                src/Sequence.cpp
        '''
-       obj.includes = '..'
-       obj.name     = 'libevoral'
-       obj.target   = 'evoral'
-       obj.uselib   = 'GLIBMM GTHREAD'
-       obj.vnum     = '0.0.0'
+       obj.export_incdirs = ['.']
+       obj.includes     = ['.', './src']
+       obj.name         = 'libevoral'
+       obj.target       = 'evoral'
+       obj.uselib       = 'GLIBMM GTHREAD SMF'
+       obj.uselib_local = 'libsmf'
+       obj.vnum         = EVORAL_LIB_VERSION
+       obj.install_path = ''
        
-       # Test (test)
-       obj = bld.create_obj('cpp', 'program')
-       obj.source       = 'test/sequence.cpp'
-       obj.includes     = '..'
+       # Unit tests
+       obj              = bld.new_task_gen('cxx', 'program')
+       obj.source       = '''
+               test/SequenceTest.cpp
+               test/SMFTest.cpp
+               test/testrunner.cpp
+       '''
+       obj.includes     = ['.', './src']
        obj.uselib_local = 'libevoral'
-       obj.target       = 'sequence'
-       obj.inst_var     = 0
+       obj.uselib       = 'CPPUNIT'
+       obj.target       = 'run-tests'
+       obj.install_path = ''
+
+def shutdown():
+       autowaf.shutdown()