X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=wscript;h=f1c9ba16c21f775d52562d6f7de827c482351566;hp=6fdf3574e1349a1aa480a1ef3f07cc75940390d9;hb=3127fd431692d6b4715c12e1fc5eb97b56f4376a;hpb=f0f6638fb1970f659af2619426458e4c72d82e1b diff --git a/wscript b/wscript index 6fdf3574e..f1c9ba16c 100644 --- a/wscript +++ b/wscript @@ -27,7 +27,7 @@ import distutils.spawn from waflib import Logs, Context APPNAME = 'dcpomatic' -VERSION = '2.9.22' +VERSION = '2.10.9' def options(opt): opt.load('compiler_cxx') @@ -86,6 +86,7 @@ def configure(conf): gcc = conf.env['CC_VERSION'] if int(gcc[0]) >= 4 and int(gcc[1]) > 1: conf.env.append_value('CXXFLAGS', ['-Wno-unused-result']) + have_c11 = int(gcc[0]) >= 4 and int(gcc[1]) >= 8 and int(gcc[2]) >= 1 if conf.options.enable_debug: conf.env.append_value('CXXFLAGS', ['-g', '-DDCPOMATIC_DEBUG', '-fno-omit-frame-pointer']) @@ -237,19 +238,43 @@ def configure(conf): # cairomm conf.check_cfg(package='cairomm-1.0', args='--cflags --libs', uselib_store='CAIROMM', mandatory=True) - # See if we have Cairo::ImageSurface::format_stride_for_width + test_cxxflags = '' + if have_c11: + test_cxxflags = '-std=c++11' + + # See if we have Cairo::ImageSurface::format_stride_for_width; Centos 5 does not conf.check_cxx(fragment=""" #include int main(void) { - Cairo::ImageSurface::format_stride_for_width (Cairo::FORMAT_ARGB, 1024);\n + Cairo::ImageSurface::format_stride_for_width (Cairo::FORMAT_ARGB32, 1024);\n return 0; }\n """, mandatory=False, + cxxflags=test_cxxflags, msg='Checking for format_stride_for_width', okmsg='yes', includes=conf.env['INCLUDES_CAIROMM'], + uselib='CAIROMM', define_name='DCPOMATIC_HAVE_FORMAT_STRIDE_FOR_WIDTH') + # See if we have Pango::Layout::show_in_cairo_context; Centos 5 does not + conf.check_cxx(fragment=""" + #include + int main(void) { + Cairo::RefPtr context; + Glib::RefPtr layout; + layout->show_in_cairo_context (context); + return 0; }\n + """, + mandatory=False, + msg='Checking for show_in_cairo_context', + cxxflags=test_cxxflags, + okmsg='yes', + includes=conf.env['INCLUDES_PANGOMM'], + uselib='PANGOMM', + define_name='DCPOMATIC_HAVE_SHOW_IN_CAIRO_CONTEXT') + + # libcxml if conf.options.static_cxml: conf.check_cfg(package='libcxml', atleast_version='0.15.1', args='--cflags', uselib_store='CXML', mandatory=True) @@ -277,21 +302,21 @@ def configure(conf): # libdcp if conf.options.static_dcp: - conf.check_cfg(package='libdcp-1.0', atleast_version='1.3.4', args='--cflags', uselib_store='DCP', mandatory=True) + conf.check_cfg(package='libdcp-1.0', atleast_version='1.4.1', 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.3.4', args='--cflags --libs', uselib_store='DCP', mandatory=True) + conf.check_cfg(package='libdcp-1.0', atleast_version='1.4.1', 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.13', args='--cflags', uselib_store='SUB', mandatory=True) + conf.check_cfg(package='libsub-1.0', atleast_version='1.2.1', 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.13', args='--cflags --libs', uselib_store='SUB', mandatory=True) + conf.check_cfg(package='libsub-1.0', atleast_version='1.2.1', args='--cflags --libs', uselib_store='SUB', mandatory=True) conf.env.DEFINES_SUB = [f.replace('\\', '') for f in conf.env.DEFINES_SUB] # libxml++ @@ -315,7 +340,7 @@ def configure(conf): # FFmpeg if conf.options.static_ffmpeg: - names = ['avformat', 'avfilter', 'avcodec', 'avutil', 'swscale', 'postproc'] + names = ['avformat', 'avfilter', 'avcodec', 'avutil', 'swscale', 'postproc', 'swresample'] for name in names: static = subprocess.Popen(shlex.split('pkg-config --static --libs lib%s' % name), stdout=subprocess.PIPE).communicate()[0].decode('utf-8') libs = [] @@ -344,6 +369,7 @@ def configure(conf): conf.check_cfg(package='libavutil', args='--cflags --libs', uselib_store='AVUTIL', mandatory=True) conf.check_cfg(package='libswscale', args='--cflags --libs', uselib_store='SWSCALE', mandatory=True) conf.check_cfg(package='libpostproc', args='--cflags --libs', uselib_store='POSTPROC', mandatory=True) + conf.check_cfg(package='libswresample', args='--cflags --libs', uselib_store='SWRESAMPLE', mandatory=True) # Check to see if we have our version of FFmpeg that allows us to get at EBUR128 results conf.check_cxx(fragment=""" @@ -540,6 +566,8 @@ def git_revision(): cmd = "LANG= git log --abbrev HEAD^..HEAD ." output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() + if len(output) == 0: + return None o = output[0].decode('utf-8') return o.replace("commit ", "")[0:10]