Bump lib{cxml,dcp}.
[libsub.git] / cscript
1 #
2 #    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
3 #
4 #    This file is part of libsub.
5 #
6 #    libsub is free software; you can redistribute it and/or modify
7 #    it under the terms of the GNU General Public License as published by
8 #    the Free Software Foundation; either version 2 of the License, or
9 #    (at your option) any later version.
10 #
11 #    libsub is distributed in the hope that it will be useful,
12 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 #    GNU General Public License for more details.
15 #
16 #    You should have received a copy of the GNU General Public License
17 #    along with libsub.  If not, see <http://www.gnu.org/licenses/>.
18 #
19
20 import os
21
22 option_defaults = { 'force-cpp11': False }
23
24 def dependencies(target, options):
25     libdcp =  ('libdcp', '5346d1c', { 'force-cpp11': options['force-cpp11'] })
26     libcxml = ('libcxml', 'c333199', { 'force-cpp11': options['force-cpp11'] })
27     return (('asdcplib', 'carl'), libcxml, libdcp)
28
29 def build(target, options):
30     cmd = './waf configure --prefix=%s' % target.directory
31     if target.platform == 'linux':
32         cmd += ' --static'
33         if target.distro == 'centos':
34             cmd += ' --disable-tests'
35     if target.debug:
36         cmd += ' --enable-debug'
37     if target.platform == 'windows':
38         cmd += ' --target-windows --disable-tests'
39
40     # Centos 7 ships with glibmm 2.50.0 which requires C++11
41     # but its compiler (gcc 4.8.5) defaults to C++97.  Go figure.
42     # I worry that this will cause ABI problems but I don't have
43     # a better solution.  Mageia 6 pulls the same stunt except it's
44     # libxml++ that requires C++11
45     force_cpp11 = False
46     if target.platform == 'linux':
47         if target.distro == 'centos' and target.version == '7':
48             force_cpp11 = True
49         if target.distro == 'mageia' and target.version == '6':
50             force_cpp11 = True
51     if force_cpp11 or options['force-cpp11']:
52         cmd += ' --force-cpp11'
53
54     target.command(cmd)
55     target.command('./waf build install')
56
57 def make_doxygen(target):
58     os.makedirs('build/doc')
59     target.command('doxygen')
60     return os.path.abspath('build/doc/html')
61
62 def test(target, test):
63     if target.platform != 'windows':
64         target.set('LC_ALL', 'C')
65         if test is None:
66             target.command('run/tests')
67         else:
68             target.command('run/tests --run_test=%s' % test)