#
-# Copyright (C) 2012-2017 Carl Hetherington <cth@carlh.net>
+# Copyright (C) 2012-2022 Carl Hetherington <cth@carlh.net>
#
# This file is part of libdcp.
#
import shutil
def dependencies(target, options):
- if (target.platform == 'windows' and target.version == 'xp') or (options is not None and 'jpeg' in options and options['jpeg'] == 'oj1'):
- return (('libcxml', 'a45e430'), ('openjpeg-cdist', '4233dd7'), ('asdcplib-cth', 'b536bc0'))
- else:
- return (('libcxml', 'a45e430'), ('openjpeg2-cdist', 'c40a3b8'), ('asdcplib-cth', 'b536bc0'))
+ return (
+ ('libcxml', 'v0.17.9', options),
+ ('openjpeg', 'ad8edaacd54a862940d0a77c41ecda5858b54d6e'),
+ ('asdcplib', '4b5d6e8d27dfd5fb282590538068662f4dbbf1c9')
+ )
def build(target, options):
- cmd = './waf configure --disable-examples --prefix=%s' % target.directory
- if options is not None and 'jpeg' in options:
- cmd += ' --jpeg=%s' % options['jpeg']
+ cmd = './waf configure --disable-examples --disable-dumpimage --disable-benchmarks --prefix=%s' % target.directory
if target.platform == 'linux':
cmd += ' --static'
- if target.distro == 'centos':
+ if target.distro != 'ubuntu' or not target.version in ('16.04', '22.04'):
+ # We only build tests on Ubuntu 16.04 and 22.04
cmd += ' --disable-tests'
- if target.version == '7':
- # Centos 7 ships with glibmm 2.50.0 which requires C++11
- # but its compiler (gcc 4.8.5) defaults to C++97. Go figure.
- # I worry that this will cause ABI problems but I don't have
- # a better solution.
- cmd += ' --force-cpp11'
- if target.distro == 'mageia' and target.version == '6':
- # Mageia 6 pulls the same stunt except it's libxml++ that requires C++11
- cmd += ' --force-cpp11'
elif target.platform == 'windows':
- cmd += ' --target-windows --disable-gcov --disable-tests'
- if target.version == 'xp':
- # OpenJPEG 1.x is inexplicably faster on Windows XP; see DCP-o-matic bug #771
- cmd += ' --jpeg=oj1'
- elif target.platform == 'osx':
- cmd += ' --disable-tests'
+ cmd += f' --target-windows-{target.bits}'
+
+ if 'c++17' in options and options['c++17']:
+ cmd += ' --c++17'
if target.debug:
cmd += ' --enable-debug'
if target.platform == 'windows':
d = 'build/libdcp-%s' % version
os.mkdir(d)
- for f in ['asdcp-cth.dll', 'cxml-0.dll', 'dcp-1.0.dll', 'kumu-cth.dll', 'libopenjp2.dll', 'dcpinfo.exe']:
+ for f in ['asdcp-carl.dll', 'cxml-0.dll', 'dcp-1.0.dll', 'kumu-carl.dll', 'libopenjp2.dll', 'dcpinfo.exe']:
shutil.copyfile('%s/bin/%s' % (target.directory, f), os.path.join(d, f))
if target.bits == 32:
target.command('doxygen')
return os.path.abspath('build/doc/html')
-def test(target, test):
- if target.platform != 'windows':
- target.set('LC_ALL', 'C')
- if test is None:
- target.command('run/tests')
- else:
- target.command('run/tests --run_test=%s' % test)
+def test(target, options, test):
+ target.set('LC_ALL', 'C')
+ cmd = 'run\\tests ' if target.platform == 'windows' else 'run/tests '
+ if test is not None:
+ cmd += '-t %s' % test
+ target.command(cmd)
+