X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=wscript;h=e30727c8cfceba81d7e9a4b4ce99faf0562c7caf;hp=239f45bf805b3b408dfb48a9737889321185f0b1;hb=865316f0129c85cdd0248b87502fe97dec94b3f0;hpb=80c1c900a1cdc30524b2de3dc0ef65c8acd2c248 diff --git a/wscript b/wscript index 239f45bf8..e30727c8c 100644 --- a/wscript +++ b/wscript @@ -35,8 +35,8 @@ except ImportError: from waflib import Logs, Context APPNAME = 'dcpomatic' -libdcp_version = '1.8.5' -libsub_version = '1.6.5' +libdcp_version = '1.8.13' +libsub_version = '1.6.13' this_version = subprocess.Popen(shlex.split('git tag -l --points-at HEAD'), stdout=subprocess.PIPE).communicate()[0] last_version = subprocess.Popen(shlex.split('git describe --tags --match v* --abbrev=0'), stdout=subprocess.PIPE).communicate()[0] @@ -59,7 +59,8 @@ 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 for Windows') + opt.add_option('--target-windows-64', action='store_true', default=False, help='set up to do a cross-compile for Windows 64-bit') + opt.add_option('--target-windows-32', action='store_true', default=False, help='set up to do a cross-compile for Windows 32-bit') opt.add_option('--target-macos-arm64', action='store_true', default=False, help='set up to do a cross-compile for macOS arm64') opt.add_option('--static-dcpomatic', action='store_true', default=False, help='link to components of DCP-o-matic statically') opt.add_option('--static-boost', action='store_true', default=False, help='link statically to Boost') @@ -81,15 +82,16 @@ def options(opt): def configure(conf): conf.load('compiler_cxx') conf.load('clang_compilation_database', tooldir=['waf-tools']) - if conf.options.target_windows: + if conf.options.target_windows_64 or conf.options.target_windows_32: conf.load('winres') # Save conf.options that we need elsewhere in conf.env conf.env.DISABLE_GUI = conf.options.disable_gui conf.env.DISABLE_TESTS = conf.options.disable_tests - conf.env.TARGET_WINDOWS = conf.options.target_windows + conf.env.TARGET_WINDOWS_64 = conf.options.target_windows_64 + conf.env.TARGET_WINDOWS_32 = conf.options.target_windows_32 conf.env.TARGET_OSX = sys.platform == 'darwin' - conf.env.TARGET_LINUX = not conf.env.TARGET_WINDOWS and not conf.env.TARGET_OSX + conf.env.TARGET_LINUX = not conf.env.TARGET_WINDOWS_64 and not conf.env.TARGET_WINDOWS_32 and not conf.env.TARGET_OSX conf.env.VERSION = VERSION conf.env.DEBUG = conf.options.enable_debug conf.env.STATIC_DCPOMATIC = conf.options.static_dcpomatic @@ -107,6 +109,7 @@ def configure(conf): '-Wall', '-Wextra', '-Wwrite-strings', + '-Wno-error=deprecated', # I tried and failed to ignore these with _Pragma '-Wno-ignored-qualifiers', '-D_FILE_OFFSET_BITS=64', @@ -123,11 +126,11 @@ def configure(conf): if int(gcc[0]) >= 8: # I tried and failed to ignore these with _Pragma conf.env.append_value('CXXFLAGS', ['-Wno-cast-function-type']) - have_c11 = int(gcc[0]) >= 4 and int(gcc[1]) >= 8 and int(gcc[2]) >= 1 # Most gccs still give these warnings from boost::optional conf.env.append_value('CXXFLAGS', ['-Wno-maybe-uninitialized']) - else: - have_c11 = False + if int(gcc[0]) > 4: + # gcc 4.8.5 on Centos 7 does not have this warning + conf.env.append_value('CXXFLAGS', ['-Wsuggest-override']) if conf.options.enable_debug: conf.env.append_value('CXXFLAGS', ['-g', '-DDCPOMATIC_DEBUG', '-fno-omit-frame-pointer']) @@ -149,7 +152,7 @@ def configure(conf): # # Windows - if conf.env.TARGET_WINDOWS: + if conf.env.TARGET_WINDOWS_64 or conf.env.TARGET_WINDOWS_32: conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_WINDOWS') conf.env.append_value('CXXFLAGS', '-DWIN32_LEAN_AND_MEAN') conf.env.append_value('CXXFLAGS', '-DBOOST_USE_WINDOWS_H') @@ -170,8 +173,9 @@ def configure(conf): conf.check(lib='winmm', uselib_store='WINMM', msg="Checking for library winmm") conf.check(lib='ksuser', uselib_store='KSUSER', msg="Checking for library ksuser") conf.check(lib='setupapi', uselib_store='SETUPAPI', msg="Checking for library setupapi") - boost_lib_suffix = '-mt' - boost_thread = 'boost_thread-mt' + conf.check(lib='uuid', uselib_store='UUID', msg="Checking for library uuid") + boost_lib_suffix = '-mt-x32' if conf.options.target_windows_32 else '-mt-x64' + boost_thread = 'boost_thread' + boost_lib_suffix conf.check_cxx(fragment=""" #include \n int main() { std::locale::global (boost::locale::generator().generate ("")); }\n @@ -343,6 +347,18 @@ def configure(conf): # libpng conf.check_cfg(package='libpng', args='--cflags --libs', uselib_store='PNG', mandatory=True) + # libjpeg + conf.check_cxx(fragment=""" + #include + #include + #include + int main() { struct jpeg_compress_struct compress; jpeg_create_compress (&compress); return 0; } + """, + msg='Checking for libjpeg', + libpath='/usr/local/lib', + lib=['jpeg'], + uselib_store='JPEG') + # lwext4 if conf.options.enable_disk: conf.check_cxx(fragment=""" @@ -530,7 +546,7 @@ def configure(conf): # program has to link with boost_system so I'm doing it this way. if conf.options.enable_disk: deps = ['boost_system%s' % boost_lib_suffix] - if conf.env.TARGET_WINDOWS: + if conf.env.TARGET_WINDOWS_64 or conf.env.TARGET_WINDOWS_32: deps.append('ws2_32') deps.append('boost_filesystem%s' % boost_lib_suffix) conf.check_cxx(fragment=""" @@ -559,7 +575,7 @@ def configure(conf): conf.recurse('test') Logs.pprint('YELLOW', '') - if conf.env.TARGET_WINDOWS: + if conf.env.TARGET_WINDOWS_64 or conf.env.TARGET_WINDOWS_32: Logs.pprint('YELLOW', '\t' + 'Target'.ljust(25) + ': Windows') elif conf.env.TARGET_LINUX: Logs.pprint('YELLOW', '\t' + 'Target'.ljust(25) + ': Linux') @@ -595,14 +611,14 @@ def build(bld): if not bld.env.DISABLE_TESTS: bld.recurse('test') - if bld.env.TARGET_WINDOWS: + if bld.env.TARGET_WINDOWS_64 or bld.env.TARGET_WINDOWS_32: bld.recurse('platform/windows') if bld.env.TARGET_LINUX: bld.recurse('platform/linux') if bld.env.TARGET_OSX: bld.recurse('platform/osx') - if not bld.env.TARGET_WINDOWS: + if not bld.env.TARGET_WINDOWS_64 and not bld.env.TARGET_WINDOWS_32: bld.install_files('${PREFIX}/share/dcpomatic2', 'fonts/LiberationSans-Regular.ttf') bld.install_files('${PREFIX}/share/dcpomatic2', 'fonts/LiberationSans-Italic.ttf') bld.install_files('${PREFIX}/share/dcpomatic2', 'fonts/LiberationSans-Bold.ttf')