Supporter.
[dcpomatic.git] / wscript
diff --git a/wscript b/wscript
index 8c167579187b62e62a7267d87bc3cc1dd6163bae..4b2144f7dd7eca9fb6cea04df401339ce44dcc3e 100644 (file)
--- a/wscript
+++ b/wscript
@@ -1,5 +1,5 @@
 #
-#    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+#    Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net>
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@ import distutils.spawn
 from waflib import Logs, Context
 
 APPNAME = 'dcpomatic'
-VERSION = '2.6.22devel'
+VERSION = '2.8.2devel'
 
 def options(opt):
     opt.load('compiler_cxx')
@@ -79,6 +79,8 @@ def configure(conf):
                                        '-Wno-attributes',
                                        '-Wextra',
                                        '-Wno-unused-result',
+                                       # Remove auto_ptr warnings from libxml++-2.6
+                                       '-Wno-deprecated-declarations',
                                        '-D_FILE_OFFSET_BITS=64'])
 
     if conf.options.enable_debug:
@@ -98,7 +100,6 @@ def configure(conf):
         conf.env.append_value('CXXFLAGS', '-DUNICODE')
         conf.env.append_value('CXXFLAGS', '-DBOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN')
         conf.env.append_value('CXXFLAGS', '-mfpmath=sse')
-        conf.env.append_value('CXXFLAGS', '-Wno-deprecated-declarations')
         wxrc = os.popen('wx-config --rescomp').read().split()[1:]
         conf.env.append_value('WINRCFLAGS', wxrc)
         if conf.options.enable_debug:
@@ -212,10 +213,10 @@ def configure(conf):
 
     # libcxml
     if conf.options.static_cxml:
-        conf.check_cfg(package='libcxml', atleast_version='0.12.0', args='--cflags', uselib_store='CXML', mandatory=True)
+        conf.check_cfg(package='libcxml', atleast_version='0.15.1', args='--cflags', uselib_store='CXML', mandatory=True)
         conf.env.STLIB_CXML = ['cxml']
     else:
-        conf.check_cfg(package='libcxml', atleast_version='0.12.0', args='--cflags --libs', uselib_store='CXML', mandatory=True)
+        conf.check_cfg(package='libcxml', atleast_version='0.15.1', args='--cflags --libs', uselib_store='CXML', mandatory=True)
 
     # libssh
     if conf.options.static_ssh:
@@ -237,21 +238,21 @@ def configure(conf):
 
     # libdcp
     if conf.options.static_dcp:
-        conf.check_cfg(package='libdcp-1.0', atleast_version='1.2.8', args='--cflags', uselib_store='DCP', mandatory=True)
+        conf.check_cfg(package='libdcp-1.0', atleast_version='1.3.3', args='--cflags', uselib_store='DCP', mandatory=True)
         conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP]
         conf.env.STLIB_DCP = ['dcp-1.0', 'asdcp-cth', 'kumu-cth', 'openjp2']
         conf.env.LIB_DCP = ['glibmm-2.4', 'ssl', 'crypto', 'bz2', 'xslt']
     else:
-        conf.check_cfg(package='libdcp-1.0', atleast_version='1.2.8', args='--cflags --libs', uselib_store='DCP', mandatory=True)
+        conf.check_cfg(package='libdcp-1.0', atleast_version='1.3.3', args='--cflags --libs', uselib_store='DCP', mandatory=True)
         conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP]
 
     # libsub
     if conf.options.static_sub:
-        conf.check_cfg(package='libsub-1.0', atleast_version='1.1.8', args='--cflags', uselib_store='SUB', mandatory=True)
+        conf.check_cfg(package='libsub-1.0', atleast_version='1.1.12', args='--cflags', uselib_store='SUB', mandatory=True)
         conf.env.DEFINES_SUB = [f.replace('\\', '') for f in conf.env.DEFINES_SUB]
         conf.env.STLIB_SUB = ['sub-1.0']
     else:
-        conf.check_cfg(package='libsub-1.0', atleast_version='1.1.8', args='--cflags --libs', uselib_store='SUB', mandatory=True)
+        conf.check_cfg(package='libsub-1.0', atleast_version='1.1.12', args='--cflags --libs', uselib_store='SUB', mandatory=True)
         conf.env.DEFINES_SUB = [f.replace('\\', '') for f in conf.env.DEFINES_SUB]
 
     # libxml++
@@ -306,13 +307,50 @@ def configure(conf):
                             }\n
                             int main () { av_ebur128_get_true_peaks (0); }\n
                             """,
-                   msg='Checking for patched FFmpeg',
-                   libpath='/usr/local/lib',
-                   lib=['avfilter'],
-                   uselib_store='PATCHED_FFMPEG',
-                   define_name='DCPOMATIC_HAVE_PATCHED_FFMPEG',
+                   msg='Checking for EBUR128-patched FFmpeg',
+                   libpath=conf.env['LIBPATH_AVFORMAT'],
+                   lib='avfilter avutil swresample',
+                   includes=conf.env['INCLUDES_AVFORMAT'],
+                   define_name='DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG',
                    mandatory=False)
 
+    # Check to see if we have our AVSubtitleRect has a pict member
+    # Older versions (e.g. that shipped with Ubuntu 16.04) do
+    conf.check_cxx(fragment="""
+                            extern "C" {\n
+                            #include <libavcodec/avcodec.h>\n
+                            }\n
+                            int main () { AVSubtitleRect r; r.pict; }\n
+                            """,
+                   msg='Checking for AVSubtitleRect::pict',
+                   cxxflags='-Wno-unused-result -Wno-unused-value -Wdeprecated-declarations -Werror',
+                   libpath=conf.env['LIBPATH_AVCODEC'],
+                   lib='avcodec',
+                   includes=conf.env['INCLUDES_AVCODEC'],
+                   define_name='DCPOMATIC_HAVE_AVSUBTITLERECT_PICT',
+                   mandatory=False)
+
+    # Check to see if we have our AVComponentDescriptor has a depth_minus1 member
+    # Older versions (e.g. that shipped with Ubuntu 16.04) do
+    conf.check_cxx(fragment="""
+                            extern "C" {\n
+                            #include <libavutil/pixdesc.h>\n
+                            }\n
+                            int main () { AVComponentDescriptor d; d.depth_minus1; }\n
+                            """,
+                   msg='Checking for AVComponentDescriptor::depth_minus1',
+                   cxxflags='-Wno-unused-result -Wno-unused-value -Wdeprecated-declarations -Werror',
+                   libpath=conf.env['LIBPATH_AVUTIL'],
+                   lib='avutil',
+                   includes=conf.env['INCLUDES_AVUTIL'],
+                   define_name='DCPOMATIC_HAVE_AVCOMPONENTDESCRIPTOR_DEPTH_MINUS1',
+                   mandatory=False)
+
+    # Hack: the previous two check_cxx calls end up copying their (necessary) cxxflags
+    # to these variables.  We don't want to use these for the actual build, so clearn them out.
+    conf.env['CXXFLAGS_AVCODEC'] = []
+    conf.env['CXXFLAGS_AVUTIL'] = []
+
     # Boost
     if conf.options.static_boost:
         conf.env.STLIB_BOOST_THREAD = ['boost_thread']