X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=58998bc6872953fb2323f9cbbf509283de4d6ad2;hb=167deda43c57eca795ee93007fb1d9d376a2e931;hp=544ca241de5fdebd78a18dfb8d71281f86da5b67;hpb=894d6e4cbfab5217adf6f39b1c097cec2a8f948c;p=dcpomatic.git diff --git a/wscript b/wscript index 544ca241d..58998bc68 100644 --- a/wscript +++ b/wscript @@ -27,7 +27,7 @@ import distutils.spawn from waflib import Logs, Context APPNAME = 'dcpomatic' -VERSION = '2.9.35devel' +VERSION = '2.11.6' 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']) @@ -115,6 +116,10 @@ def configure(conf): conf.check(lib='iberty', uselib_store='IBERTY', msg="Checking for library iberty") conf.check(lib='shlwapi', uselib_store='SHLWAPI', msg="Checking for library shlwapi") conf.check(lib='mswsock', uselib_store='MSWSOCK', msg="Checking for library mswsock") + conf.check(lib='ole32', uselib_store='OLE32', msg="Checking for library ole32") + conf.check(lib='dsound', uselib_store='DSOUND', msg="Checking for library dsound") + conf.check(lib='winmm', uselib_store='WINMM', msg="Checking for library winmm") + conf.check(lib='ksuser', uselib_store='KSUSER', msg="Checking for library ksuser") boost_lib_suffix = '-mt' boost_thread = 'boost_thread-mt' conf.check_cxx(fragment=""" @@ -237,19 +242,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 +306,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 +344,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 +373,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 +570,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]