X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=wscript;h=aaeca9cd3e912e56e3079385e1e966a654e6cb36;hb=402bf16eb94fa6680ceed03f899c02645de1d982;hp=7773157471d3b48409186e5302b1cf48ef8200e4;hpb=e0935244e27bcc5e87588900e1010b291ee631bc;p=dcpomatic.git diff --git a/wscript b/wscript index 777315747..aaeca9cd3 100644 --- a/wscript +++ b/wscript @@ -35,7 +35,7 @@ except ImportError: from waflib import Logs, Context APPNAME = 'dcpomatic' -libdcp_version = '1.8.69' +libdcp_version = '1.8.73' libsub_version = '1.6.42' this_version = subprocess.Popen(shlex.split('git tag -l --points-at HEAD'), stdout=subprocess.PIPE).communicate()[0] @@ -76,6 +76,7 @@ def options(opt): opt.add_option('--workaround-gssapi', action='store_true', default=False, help='link to gssapi_krb5') opt.add_option('--use-lld', action='store_true', default=False, help='use lld linker') opt.add_option('--enable-disk', action='store_true', default=False, help='build dcpomatic2_disk tool; requires Boost process, lwext4 and nanomsg libraries') + opt.add_option('--enable-grok', action='store_true', default=False, help='build with support for grok J2K encoder') opt.add_option('--warnings-are-errors', action='store_true', default=False, help='build with -Werror') opt.add_option('--wx-config', help='path to wx-config') @@ -96,6 +97,7 @@ def configure(conf): conf.env.DEBUG = conf.options.enable_debug conf.env.STATIC_DCPOMATIC = conf.options.static_dcpomatic conf.env.ENABLE_DISK = conf.options.enable_disk + conf.env.ENABLE_GROK = conf.options.enable_grok if conf.options.destdir == '': conf.env.INSTALL_PREFIX = conf.options.prefix else: @@ -110,6 +112,8 @@ def configure(conf): '-Wextra', '-Wwrite-strings', '-Wno-error=deprecated', + # getMessengerLogger() in the grok code triggers these warnings + '-Wno-nonnull', # I tried and failed to ignore these with _Pragma '-Wno-ignored-qualifiers', '-D_FILE_OFFSET_BITS=64', @@ -140,6 +144,9 @@ def configure(conf): if conf.options.enable_disk: conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_DISK') + if conf.options.enable_grok: + conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_GROK') + if conf.options.use_lld: try: conf.find_program('ld.lld') @@ -249,13 +256,22 @@ def configure(conf): conf.check_cfg(package='libzip', args='--cflags --libs', uselib_store='ZIP', mandatory=True) conf.check_cxx(fragment=""" #include - int main() { zip_source_t* foo; } + int main() { zip_source_t* foo; (void)foo; } """, mandatory=False, msg="Checking for zip_source_t", uselib="ZIP", define_name='DCPOMATIC_HAVE_ZIP_SOURCE_T' ) + conf.check_cxx(fragment=""" + #include + int main() { struct zip* zip = nullptr; zip_source_t* source = nullptr; zip_file_add(zip, "foo", source, ZIP_FL_ENC_GUESS); } + """, + mandatory=False, + msg="Checking for zip_file_add", + uselib="ZIP", + define_name='DCPOMATIC_HAVE_ZIP_FILE_ADD' + ) # libbz2; must be explicitly linked on macOS for some reason conf.check_cxx(fragment=""" @@ -422,7 +438,7 @@ def configure(conf): int main () { av_ebur128_get_true_peaks (0); }\n """, msg='Checking for EBUR128-patched FFmpeg', - uselib='AVCODEC AVFILTER', + uselib='AVCODEC AVFILTER AVUTIL SWRESAMPLE', define_name='DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG', mandatory=False) @@ -606,6 +622,21 @@ def configure(conf): def build(bld): create_version_cc(VERSION, bld.env.CXXFLAGS) + # waf can't find these dependencies by itself because they are only included if DCPOMATIC_GROK is defined, + # and I can't find a way to pass that to waf's dependency scanner + if bld.env.ENABLE_GROK: + for dep in ( + 'src/lib/j2k_encoder.cc', + 'src/tools/dcpomatic.cc', + 'src/tools/dcpomatic_server.cc', + 'src/tools/dcpomatic_server_cli.cc', + 'src/tools/dcpomatic_batch.cc' + ): + bld.add_manual_dependency(bld.path.find_node(dep), bld.path.find_node('src/lib/grok/context.h')) + bld.add_manual_dependency(bld.path.find_node(dep), bld.path.find_node('src/lib/grok/messenger.h')) + + bld.add_manual_dependency(bld.path.find_node('src/wx/full_config_dialog.cc'), bld.path.find_node('src/wx/grok/gpu_config_panel.h')) + bld.recurse('src') bld.recurse('graphics')