import subprocess APPNAME = 'libdcp' VERSION = '0.03pre' def options(opt): opt.load('compiler_cxx') def configure(conf): conf.load('compiler_cxx') conf.env.append_value('CXXFLAGS', ['-Wall', '-Werror', '-Wextra', '-Wno-unused-result', '-O2', '-D_FILE_OFFSET_BITS=64']) conf.env.append_value('CXXFLAGS', ['-DLIBDCP_VERSION="%s"' % VERSION]) conf.check_cfg(package = 'openssl', args = '--cflags --libs', uselib_store = 'OPENSSL', mandatory = True) conf.check_cfg(package = 'sigc++-2.0', args = '--cflags --libs', uselib_store = 'SIGC++', mandatory = True) conf.check_cxx(fragment = """ #include \n int main() { boost::filesystem::copy_file ("a", "b"); }\n """, msg = 'Checking for boost filesystem library', libpath = '/usr/local/lib', lib = ['boost_filesystem', 'boost_system'], uselib_store = 'BOOST_FILESYSTEM') conf.recurse('test') conf.recurse('asdcplib') def build(bld): create_stored_commit() bld(source = 'libdcp.pc.in', version = VERSION, includedir = '%s/include' % bld.env.PREFIX, libs = "-L${libdir} -ldcp -lkumu-libdcp -lasdcp-libdcp", install_path = '${LIBDIR}/pkgconfig') bld.recurse('src') bld.recurse('test') bld.recurse('asdcplib') def dist(ctx): ctx.excl = 'TODO core *~ .git build .waf* .lock* doc/*~ src/*~ test/ref/*~' def create_stored_commit(): 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] try: text = '#include "git_commit.h"\n' text += 'char const * libdcp::git_commit = \"%s\";\n' % commit print('Writing git commit info to src/git_commit.cc') o = open('src/git_commit.cc', 'w') o.write(text) o.close() except IOError: print('Could not open src/git_commit.cc for writing\n') sys.exit(-1)