Fix binary STL output with subs that are too big for a single TTI block.
[libsub.git] / cscript
diff --git a/cscript b/cscript
index 4dcca141e6cd4f953639ada5320e14d549134a6e..4ae23f7bd529144f1e0649e590f03c0db32047c7 100644 (file)
--- a/cscript
+++ b/cscript
@@ -1,7 +1,27 @@
+#
+#    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
+#
+#    This file is part of libsub.
+#
+#    libsub is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    libsub is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with libsub.  If not, see <http://www.gnu.org/licenses/>.
+#
+
 import os
 
-def dependencies(target):
-    return (('asdcplib-cth', 'f3b0fb8'), ('libcxml', '25e945f'), ('libdcp', '23f98da'))
+def dependencies(target, options):
+    libdcp_options = { 'force-cpp11': options['force-cpp11'] } if 'force-cpp11' in options else {}
+    return (('asdcplib', 'carl'), ('libcxml', '0d18df4'), ('libdcp', None, libdcp_options))
 
 def build(target, options):
     cmd = './waf configure --prefix=%s' % target.directory
@@ -9,13 +29,23 @@ def build(target, options):
         cmd += ' --static'
         if target.distro == 'centos':
             cmd += ' --disable-tests'
-        if (target.distro == 'debian' and target.version == 'unstable' or target.distro == 'fedora' and target.version == '23'):
-            target.append_with_space('CXXFLAGS', '-std=c++11')
+            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'
     if target.debug:
         cmd += ' --enable-debug'
     if target.platform == 'windows':
         cmd += ' --target-windows --disable-tests'
 
+    if options is not None and 'force-cpp11' in options and options['force-cpp11']:
+        cmd += ' --force-cpp11'
+
     target.command(cmd)
     target.command('./waf build install')