X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=183f57bedce2386af22137e274308346bd61f499;hb=d4c08424fb84da0bec20e9d008d2a70998130ba0;hp=404782b3c5f066e1ee6631eae791bc2658f2a0c7;hpb=a6b3b4539ae17ce59f975a4be49278f4ccc736fd;p=dcpomatic.git diff --git a/wscript b/wscript index 404782b3c..183f57bed 100644 --- a/wscript +++ b/wscript @@ -3,7 +3,7 @@ import os import sys APPNAME = 'dcpomatic' -VERSION = '1.72.0devel' +VERSION = '1.75.1' def options(opt): opt.load('compiler_cxx') @@ -11,10 +11,12 @@ def options(opt): opt.add_option('--enable-debug', action='store_true', default=False, help='build with debugging information and without optimisation') opt.add_option('--disable-gui', action='store_true', default=False, help='disable building of GUI tools') + opt.add_option('--disable-tests', action='store_true', default=False, help='disable building of tests') opt.add_option('--target-windows', action='store_true', default=False, help='set up to do a cross-compile to make a Windows package') opt.add_option('--target-debian', action='store_true', default=False, help='set up to compile for a Debian/Ubuntu package') opt.add_option('--debian-unstable', action='store_true', default=False, help='add extra libraries to static-build correctly on Debian unstable') - opt.add_option('--target-centos', action='store_true', default=False, help='set up to compile for a Centos package') + opt.add_option('--target-centos-6', action='store_true', default=False, help='set up to compile for a Centos 6.5 package') + opt.add_option('--target-centos-7', action='store_true', default=False, help='set up to compile for a Centos 7 package') opt.add_option('--magickpp-config', action='store', default='Magick++-config', help='path to Magick++-config') opt.add_option('--wx-config', action='store', default='wx-config', help='path to wx-config') opt.add_option('--address-sanitizer', action='store_true', default=False, help='build with address sanitizer') @@ -26,8 +28,9 @@ def static_ffmpeg(conf): conf.check_cfg(package='libavfilter', args='--cflags', uselib_store='AVFILTER', mandatory=True) conf.env.STLIB_AVFILTER = ['avfilter', 'swresample'] conf.check_cfg(package='libavcodec', args='--cflags', uselib_store='AVCODEC', mandatory=True) + # lzma link is needed by Centos 7, at least conf.env.STLIB_AVCODEC = ['avcodec'] - conf.env.LIB_AVCODEC = ['z'] + conf.env.LIB_AVCODEC = ['z', 'lzma'] conf.check_cfg(package='libavutil', args='--cflags', uselib_store='AVUTIL', mandatory=True) conf.env.STLIB_AVUTIL = ['avutil'] conf.check_cfg(package='libswscale', args='--cflags', uselib_store='SWSCALE', mandatory=True) @@ -56,7 +59,7 @@ def dynamic_openjpeg(conf): conf.check_cfg(package='libopenjpeg', args='--cflags --libs', max_version='1.5.2', mandatory=True) def static_dcp(conf, static_boost, static_xmlpp, static_xmlsec, static_ssh): - conf.check_cfg(package='libdcp', atleast_version='0.95', args='--cflags', uselib_store='DCP', mandatory=True) + conf.check_cfg(package='libdcp', atleast_version='0.98', 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', 'asdcp-libdcp', 'kumu-libdcp'] conf.env.LIB_DCP = ['glibmm-2.4', 'ssl', 'crypto', 'bz2', 'xslt'] @@ -82,7 +85,7 @@ def static_dcp(conf, static_boost, static_xmlpp, static_xmlsec, static_ssh): conf.env.LIB_DCP.append('ssh') def dynamic_dcp(conf): - conf.check_cfg(package='libdcp', atleast_version='0.95.0', args='--cflags --libs', uselib_store='DCP', mandatory=True) + conf.check_cfg(package='libdcp', atleast_version='0.97.0', args='--cflags --libs', uselib_store='DCP', mandatory=True) conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP] def dynamic_ssh(conf): @@ -163,14 +166,16 @@ def configure(conf): # conf.options -> conf.env conf.env.TARGET_WINDOWS = conf.options.target_windows conf.env.DISABLE_GUI = conf.options.disable_gui + conf.env.DISABLE_TESTS = conf.options.disable_tests conf.env.TARGET_DEBIAN = conf.options.target_debian conf.env.DEBIAN_UNSTABLE = conf.options.debian_unstable - conf.env.TARGET_CENTOS = conf.options.target_centos + conf.env.TARGET_CENTOS_6 = conf.options.target_centos_6 + conf.env.TARGET_CENTOS_7 = conf.options.target_centos_7 conf.env.VERSION = VERSION conf.env.TARGET_OSX = sys.platform == 'darwin' conf.env.TARGET_LINUX = not conf.env.TARGET_WINDOWS and not conf.env.TARGET_OSX # true if we should build dcpomatic/libdcpomatic/libdcpomatic-wx statically - conf.env.BUILD_STATIC = conf.options.target_debian or conf.options.target_centos + conf.env.BUILD_STATIC = conf.options.target_debian or conf.options.target_centos_6 or conf.options.target_centos_7 if conf.options.install_prefix is None: conf.env.INSTALL_PREFIX = conf.env.PREFIX else: @@ -178,7 +183,7 @@ def configure(conf): # Common CXXFLAGS conf.env.append_value('CXXFLAGS', ['-D__STDC_CONSTANT_MACROS', '-D__STDC_LIMIT_MACROS', '-msse', '-ffast-math', '-fno-strict-aliasing', - '-Wall', '-Wno-attributes', '-Wextra', '-D_FILE_OFFSET_BITS=64']) + '-Wall', '-Wno-attributes', '-Wextra', '-Wno-unused-result', '-D_FILE_OFFSET_BITS=64']) if conf.options.enable_debug: conf.env.append_value('CXXFLAGS', ['-g', '-DDCPOMATIC_DEBUG']) @@ -218,8 +223,8 @@ def configure(conf): # POSIX if conf.env.TARGET_LINUX or conf.env.TARGET_OSX: conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_POSIX') - conf.env.append_value('CXXFLAGS', '-DPOSIX_LOCALE_PREFIX="%s/share/locale"' % conf.env['PREFIX']) - conf.env.append_value('CXXFLAGS', '-DPOSIX_ICON_PREFIX="%s/share/dcpomatic"' % conf.env['PREFIX']) + conf.env.append_value('CXXFLAGS', '-DPOSIX_LOCALE_PREFIX="%s/share/locale"' % conf.env['INSTALL_PREFIX']) + conf.env.append_value('CXXFLAGS', '-DPOSIX_ICON_PREFIX="%s/share/dcpomatic"' % conf.env['INSTALL_PREFIX']) boost_lib_suffix = '' boost_thread = 'boost_thread' conf.env.append_value('LINKFLAGS', '-pthread') @@ -247,9 +252,9 @@ def configure(conf): # if conf.env.TARGET_DEBIAN: - conf.check_cfg(package='libcxml', atleast_version='0.08', args='--cflags', uselib_store='CXML', mandatory=True) + conf.check_cfg(package='libcxml', atleast_version='0.11', args='--cflags', uselib_store='CXML', mandatory=True) conf.env.STLIB_CXML = ['cxml'] - conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='XML++', mandatory=True) + conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='XMLPP', mandatory=True) conf.check_cfg(package='libcurl', args='--cflags --libs', uselib_store='CURL', mandatory=True) conf.env.STLIB_QUICKMAIL = ['quickmail'] static_ffmpeg(conf) @@ -257,7 +262,8 @@ def configure(conf): static_dcp(conf, False, False, False, False) dynamic_boost(conf, boost_lib_suffix, boost_thread) - if conf.env.TARGET_CENTOS: + if conf.env.TARGET_CENTOS_6: + # Centos 6.5's boost is too old, so we build a new version statically in the chroot conf.check_cfg(package='libcxml', atleast_version='0.08', args='--cflags --libs-only-L', uselib_store='CXML', mandatory=True) conf.env.STLIB_CXML = ['cxml', 'boost_filesystem'] conf.check_cfg(package='libcurl', args='--cflags --libs-only-L', uselib_store='CURL', mandatory=True) @@ -270,8 +276,22 @@ def configure(conf): static_dcp(conf, True, True, True, True) static_boost(conf, boost_lib_suffix) + if conf.env.TARGET_CENTOS_7: + # Centos 7's boost is ok so we link it dynamically + conf.check_cfg(package='libcxml', atleast_version='0.08', args='--cflags', uselib_store='CXML', mandatory=True) + conf.env.STLIB_CXML = ['cxml'] + conf.check_cfg(package='libcurl', args='--cflags --libs', uselib_store='CURL', mandatory=True) + conf.env.STLIB_QUICKMAIL = ['quickmail'] + conf.env.LIB_SSH = ['gssapi_krb5'] + conf.env.LIB_XMLPP = ['xml2'] + conf.env.LIB_XMLSEC = ['ltdl'] + static_ffmpeg(conf) + static_openjpeg(conf) + static_dcp(conf, False, True, True, True) + dynamic_boost(conf, boost_lib_suffix, boost_thread) + if conf.env.TARGET_WINDOWS: - conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='XML++', mandatory=True) + conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='XMLPP', mandatory=True) conf.check_cfg(package='libcurl', args='--cflags --libs', uselib_store='CURL', mandatory=True) conf.check_cxx(fragment=""" #include \n @@ -288,9 +308,9 @@ def configure(conf): dynamic_ssh(conf) # Not packaging; just a straight build - if not conf.env.TARGET_WINDOWS and not conf.env.TARGET_DEBIAN and not conf.env.TARGET_CENTOS: + if not conf.env.TARGET_WINDOWS and not conf.env.TARGET_DEBIAN and not conf.env.TARGET_CENTOS_6 and not conf.env.TARGET_CENTOS_7: conf.check_cfg(package='libcxml', atleast_version='0.08', args='--cflags --libs', uselib_store='CXML', mandatory=True) - conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='XML++', mandatory=True) + conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='XMLPP', mandatory=True) conf.check_cfg(package='libcurl', args='--cflags --libs', uselib_store='CURL', mandatory=True) dynamic_quickmail(conf) dynamic_boost(conf, boost_lib_suffix, boost_thread) @@ -323,13 +343,15 @@ def configure(conf): conf.define('DATADIR', datadir) conf.recurse('src') - conf.recurse('test') + if not conf.env.DISABLE_TESTS: + conf.recurse('test') def build(bld): create_version_cc(VERSION, bld.env.CXXFLAGS) bld.recurse('src') - bld.recurse('test') + if not bld.env.DISABLE_TESTS: + bld.recurse('test') if bld.env.TARGET_WINDOWS: bld.recurse('platform/windows') if bld.env.TARGET_LINUX: