X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=c4161713006fddd42c39fdadfd03d0c26dd1e216;hb=875c8635f80204f69d06680efa05fdeb2dcbb8c4;hp=ddf0a240cecf863d1d3c74375f03d64e4d894e20;hpb=33dd911e6c2cc3c42425d4260bd22dbe462d01be;p=dcpomatic.git diff --git a/wscript b/wscript index ddf0a240c..c41617130 100644 --- a/wscript +++ b/wscript @@ -3,7 +3,7 @@ import os import sys APPNAME = 'dcpomatic' -VERSION = '1.00pre' +VERSION = '1.57pre' def options(opt): opt.load('compiler_cxx') @@ -45,17 +45,18 @@ def configure(conf): # Windows-specific if conf.env.TARGET_WINDOWS: - conf.env.append_value('CXXFLAGS', ['-DDCPOMATIC_WINDOWS', '-DWIN32_LEAN_AND_MEAN', '-DBOOST_USE_WINDOWS_H', '-DUNICODE']) + conf.env.append_value('CXXFLAGS', ['-DDCPOMATIC_WINDOWS', '-DWIN32_LEAN_AND_MEAN', '-DBOOST_USE_WINDOWS_H', '-DUNICODE', '-DBOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN']) wxrc = os.popen('wx-config --rescomp').read().split()[1:] conf.env.append_value('WINRCFLAGS', wxrc) if conf.options.enable_debug: conf.env.append_value('CXXFLAGS', ['-mconsole']) conf.env.append_value('LINKFLAGS', ['-mconsole']) - conf.check(lib = 'ws2_32', uselib_store = 'WINSOCK2', msg = "Checking for library winsock2") - conf.check(lib = 'bfd', uselib_store = 'BFD', msg = "Checking for library bfd") - conf.check(lib = 'dbghelp', uselib_store = 'DBGHELP', msg = "Checking for library dbghelp") - 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='ws2_32', uselib_store='WINSOCK2', msg="Checking for library winsock2") + conf.check(lib='bfd', uselib_store='BFD', msg="Checking for library bfd") + conf.check(lib='dbghelp', uselib_store='DBGHELP', msg="Checking for library dbghelp") + 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") boost_lib_suffix = '-mt' boost_thread = 'boost_thread_win32-mt' @@ -73,11 +74,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: @@ -86,10 +88,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.66', args=pkg_config_args(conf), uselib_store='DCP', mandatory=True) + conf.check_cfg(package='libdcp', atleast_version='0.91', 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) @@ -118,12 +120,26 @@ def configure(conf): conf.env.STLIB_SWSCALE = ['swscale'] conf.env.STLIB_POSTPROC = ['postproc'] conf.env.STLIB_SWRESAMPLE = ['swresample'] + conf.env.STLIB_OPENJPEG = ['openjpeg'] + conf.env.STLIB_QUICKMAIL = ['quickmail'] + else: + conf.check_cxx(fragment=""" + #include + int main(void) { quickmail_initialize (); } + """, + mandatory=True, + msg='Checking for libquickmail', + libpath='/usr/local/lib', + lib=['quickmail', 'curl'], + uselib_store='QUICKMAIL') # Dependencies which are always dynamically linked conf.check_cfg(package='sndfile', args='--cflags --libs', uselib_store='SNDFILE', mandatory=True) conf.check_cfg(package='glib-2.0', args='--cflags --libs', uselib_store='GLIB', mandatory=True) conf.check_cfg(package= '', path=conf.options.magickpp_config, args='--cppflags --cxxflags --libs', uselib_store='MAGICK', mandatory=True) conf.check_cfg(package='libxml++-2.6', args='--cflags --libs', uselib_store='XML++', mandatory=True) + conf.check_cfg(package='libcurl', args='--cflags --libs', uselib_store='CURL', mandatory=True) + conf.check_cfg(package='libzip', args='--cflags --libs', uselib_store='ZIP', mandatory=True) conf.check_cxx(fragment=""" #include \n @@ -169,6 +185,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 @@ -216,20 +243,36 @@ def build(bld): bld.add_post_fun(post) +def git_revision(): + if not os.path.exists('.git'): + return None + + cmd = "LANG= git log --abbrev HEAD^..HEAD ." + output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() + o = output[0].decode('utf-8') + return o.replace("commit ", "")[0:10] + def dist(ctx): + r = git_revision() + if r is not None: + f = open('.git_revision', 'w') + print >>f,r + f.close() + ctx.excl = """ TODO core *~ src/wx/*~ src/lib/*~ builds/*~ doc/manual/*~ src/tools/*~ *.pyc .waf* build .git deps alignment hacks sync *.tar.bz2 *.exe .lock* *build-windows doc/manual/pdf doc/manual/html GRSYMS GRTAGS GSYMS GTAGS """ + def create_version_cc(version, cxx_flags): - if os.path.exists('.git'): - cmd = "LANG= git log --abbrev HEAD^..HEAD ." - output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() - o = output[0].decode('utf-8') - commit = o.replace ("commit ", "")[0:10] - else: + commit = git_revision() + if commit is None and os.path.exists('.git_revision'): + f = open('.git_revision', 'r') + commit = f.readline().strip() + + if commit is None: commit = 'release' try: