X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=a82d9d8fd7df2b28e74e8a47f5935321044edd47;hb=b7cedf45ed8de32fc9384d5bc18dfcdc3376111c;hp=1bc6e7c2a722d45ae4a6ab5709d0829a89675a8c;hpb=4c7416beb0efbf74868f756ddf8013f93c5841dc;p=dcpomatic.git diff --git a/wscript b/wscript index 1bc6e7c2a..a82d9d8fd 100644 --- a/wscript +++ b/wscript @@ -3,7 +3,7 @@ import os import sys APPNAME = 'dcpomatic' -VERSION = '1.27pre' +VERSION = '1.60pre' def options(opt): opt.load('compiler_cxx') @@ -15,6 +15,7 @@ def options(opt): opt.add_option('--static', action='store_true', default=False, help='build statically, and link statically to libdcp and FFmpeg') 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') def pkg_config_args(conf): if conf.env.STATIC: @@ -43,6 +44,10 @@ def configure(conf): else: conf.env.append_value('CXXFLAGS', '-O2') + if conf.options.address_sanitizer: + conf.env.append_value('CXXFLAGS', ['-fsanitize=address', '-fno-omit-frame-pointer']) + conf.env.append_value('LINKFLAGS', ['-fsanitize=address']) + # Windows-specific if conf.env.TARGET_WINDOWS: conf.env.append_value('CXXFLAGS', ['-DDCPOMATIC_WINDOWS', '-DWIN32_LEAN_AND_MEAN', '-DBOOST_USE_WINDOWS_H', '-DUNICODE', '-DBOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN']) @@ -74,11 +79,12 @@ def configure(conf): conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_LINUX') # libxml2 seems to be linked against this on Ubuntu but it doesn't mention it in its .pc file conf.check_cfg(package='liblzma', args='--cflags --libs', uselib_store='LZMA', mandatory=True) - if conf.env.STATIC: - conf.check_cfg(package='gtk+-2.0', args='--cflags --libs', uselib_store='GTK', mandatory=True) - else: - # On Linux we need to be able to include to check GTK's version - conf.check_cfg(package='gtk+-2.0', args='--cflags', uselib_store='GTK', mandatory=True) + if not conf.env.DISABLE_GUI: + if conf.env.STATIC: + conf.check_cfg(package='gtk+-2.0', args='--cflags --libs', uselib_store='GTK', mandatory=True) + else: + # On Linux we need to be able to include to check GTK's version + conf.check_cfg(package='gtk+-2.0', args='--cflags', uselib_store='GTK', mandatory=True) # OSX-specific if conf.env.TARGET_OSX: @@ -87,10 +93,10 @@ def configure(conf): # Dependencies which are dynamically linked everywhere except --static # Get libs only when we are dynamically linking - conf.check_cfg(package='libdcp', atleast_version='0.81', args=pkg_config_args(conf), uselib_store='DCP', mandatory=True) + conf.check_cfg(package='libdcp', atleast_version='0.92', args=pkg_config_args(conf), uselib_store='DCP', mandatory=True) # Remove erroneous escaping of quotes from xmlsec1 defines conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP] - conf.check_cfg(package='libcxml', atleast_version='0.01', args=pkg_config_args(conf), uselib_store='CXML', mandatory=True) + conf.check_cfg(package='libcxml', atleast_version='0.08', args=pkg_config_args(conf), uselib_store='CXML', mandatory=True) conf.check_cfg(package='libavformat', args=pkg_config_args(conf), uselib_store='AVFORMAT', mandatory=True) conf.check_cfg(package='libavfilter', args=pkg_config_args(conf), uselib_store='AVFILTER', mandatory=True) conf.check_cfg(package='libavcodec', args=pkg_config_args(conf), uselib_store='AVCODEC', mandatory=True) @@ -184,6 +190,17 @@ def configure(conf): lib=['boost_date_time%s' % boost_lib_suffix, 'boost_system%s' % boost_lib_suffix], uselib_store='BOOST_DATETIME') + # Only Windows versions require boost::locale, which is handy, as it was only introduced in + # boost 1.48 and so isn't (easily) available on old Ubuntus. + if conf.env.TARGET_WINDOWS: + conf.check_cxx(fragment=""" + #include \n + int main() { std::locale::global (boost::locale::generator().generate ("")); }\n + """, msg='Checking for boost locale library', + libpath='/usr/local/lib', + lib=['boost_locale%s' % boost_lib_suffix, 'boost_system%s' % boost_lib_suffix], + uselib_store='BOOST_LOCALE') + conf.check_cxx(fragment=""" #include \n int main() { boost::signals2::signal x; }\n