X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=f6adb06f969229149eb02d8bceef434b85da651a;hb=0c7a195358580f65c9fcfd5342e01a70544c1405;hp=df197713cf27e85c36b3ca1b288216cf59a30af4;hpb=1d112950e8ac61660449adcb211025c728a3e7e0;p=libsub.git diff --git a/wscript b/wscript index df19771..f6adb06 100644 --- a/wscript +++ b/wscript @@ -1,13 +1,15 @@ import subprocess import os +from waflib import Context APPNAME = 'libsub' -VERSION = '0.01.0devel' +VERSION = '1.2.4devel' +API_VERSION = '-1.0' def options(opt): opt.load('compiler_cxx') opt.add_option('--enable-debug', action='store_true', default=False, help='build with debugging information and without optimisation') - opt.add_option('--static', action='store_true', default=False, help='build libsub statically and link statically to cxml') + opt.add_option('--static', action='store_true', default=False, help='build libsub statically and link statically to cxml and dcp') opt.add_option('--target-windows', action='store_true', default=False, help='set up to do a cross-compile to make a Windows package') opt.add_option('--disable-tests', action='store_true', default=False, help='disable building of tests') @@ -20,19 +22,32 @@ def configure(conf): conf.env.STATIC = conf.options.static conf.env.TARGET_WINDOWS = conf.options.target_windows conf.env.DISABLE_TESTS = conf.options.disable_tests + conf.env.API_VERSION = API_VERSION if conf.options.enable_debug: conf.env.append_value('CXXFLAGS', '-g') else: conf.env.append_value('CXXFLAGS', '-O3') + # Disable libxml++ deprecation warnings for now + conf.env.append_value('CXXFLAGS', ['-Wno-deprecated-declarations']) + + conf.check_cfg(package='openssl', args='--cflags --libs', uselib_store='OPENSSL', mandatory=True) + if conf.options.static: + conf.check_cfg(package='libcxml', atleast_version='0.14.0', args='--cflags', uselib_store='CXML', mandatory=True) conf.env.HAVE_CXML = 1 conf.env.LIB_CXML = ['glibmm-2.4', 'glib-2.0', 'pcre', 'sigc-2.0', 'rt', 'xml++-2.6', 'xml2', 'pthread', 'lzma', 'dl', 'z'] conf.env.STLIB_CXML = ['cxml'] - conf.check_cfg(package='libcxml', atleast_version='0.08', args='--cflags', uselib_store='CXML', mandatory=True) + conf.check_cfg(package='libdcp-1.0', atleast_version='1.4.4', args='--cflags', uselib_store='DCP', mandatory=True) + conf.env.HAVE_DCP = 1 + conf.env.STLIB_DCP = ['dcp-1.0', 'asdcp-cth', 'kumu-cth', 'openjp2'] + conf.env.LIB_DCP = ['ssl', 'crypto', 'xmlsec1-openssl', 'xmlsec1'] else: - conf.check_cfg(package='libcxml', atleast_version='0.08', args='--cflags --libs', uselib_store='CXML', mandatory=True) + conf.check_cfg(package='libcxml', atleast_version='0.15.2', args='--cflags --libs', uselib_store='CXML', mandatory=True) + conf.check_cfg(package='libdcp-1.0', atleast_version='1.4.4', args='--cflags --libs', uselib_store='DCP', mandatory=True) + + conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP] boost_lib_suffix = '' if conf.env.TARGET_WINDOWS: @@ -65,12 +80,28 @@ def configure(conf): """, msg='Checking for boost locale library', libpath='/usr/local/lib', - lib=['boost_locale%s' % boost_lib_suffix, 'boost_system%s' % boost_lib_suffix], + lib=['boost_locale%s' % boost_lib_suffix, 'boost_system%s' % boost_lib_suffix, 'icuio', 'icule', 'iculx', 'icutu', 'icuuc'], uselib_store='BOOST_LOCALE') + conf.check_cxx(fragment=""" + #include \n + int main() { boost::regex re ("foo"); }\n + """, + msg='Checking for boost regex library', + libpath='/usr/local/lib', + lib=['boost_regex%s' % boost_lib_suffix, 'boost_system%s' % boost_lib_suffix], + uselib_store='BOOST_REGEX') + if not conf.env.DISABLE_TESTS: conf.recurse('test') + # libxml++ 2.39.1 and later must be built with -std=c++11 + libxmlpp_version = conf.cmd_and_log(['pkg-config', '--modversion', 'libxml++-2.6'], output=Context.STDOUT, quiet=Context.BOTH) + s = libxmlpp_version.split('.') + v = (int(s[0]) << 16) | (int(s[1]) << 8) | int(s[2]) + if v >= 0x022701: + conf.env.append_value('CXXFLAGS', '-std=c++11') + def build(bld): create_version_cc(bld, VERSION) @@ -79,10 +110,10 @@ def build(bld): else: boost_lib_suffix = '' - bld(source='libsub.pc.in', + bld(source='libsub%s.pc.in' % bld.env.API_VERSION, version=VERSION, - includedir='%s/include' % bld.env.PREFIX, - libs="-L${libdir} -lsub -lboost_system%s" % boost_lib_suffix, + includedir='%s/include/libsub%s' % (bld.env.PREFIX, bld.env.API_VERSION), + libs="-L${libdir} -lsub%s -lboost_system%s" % (bld.env.API_VERSION, boost_lib_suffix), install_path='${LIBDIR}/pkgconfig') bld.recurse('src') @@ -124,3 +155,6 @@ def create_version_cc(bld, version): def post(ctx): if ctx.cmd == 'install': ctx.exec_command('/sbin/ldconfig') + +def tags(bld): + os.system('etags src/*.cc src/*.h')