def configure(conf): conf.env.append_value('CXXFLAGS', '-D_FILE_OFFSET_BITS=64') # Don't include the micro version number in PACKAGE_VERSION, as # this ends up in MXFs and screws up DCP-o-matic's test references # every time it changes s = conf.env.VERSION.split('.') if len(s) == 2: major_minor = '%s.%s.0' % (s[0], s[1]) else: major_minor = '0.0.0' conf.env.append_value('CXXFLAGS', ['-DPACKAGE_VERSION="%s"' % major_minor]) if conf.options.target_windows_64 or conf.options.target_windows_32: conf.env.append_value('CXXFLAGS', ['-DASDCP_PLATFORM="win32"', '-DKM_WIN32', '-DWIN32_LEAN_AND_MEAN']) else: conf.env.append_value('CXXFLAGS', '-DASDCP_PLATFORM="linux"') def build(bld): if bld.env.STATIC: obj = bld(features='cxx cxxstlib') else: obj = bld(features='cxx cxxshlib') obj.name = 'libkumu-dcpomatic' obj.target = 'kumu-dcpomatic' obj.uselib = 'OPENSSL BOOST_FILESYSTEM' obj.includes = ['.'] obj.export_includes = ['.'] obj.source = """ KM_aes.cpp KM_fileio.cpp KM_log.cpp KM_prng.cpp KM_sha1.cpp KM_tai.cpp KM_util.cpp KM_xml.cpp """ if bld.env.STATIC: obj = bld(features='cxx cxxstlib') else: obj = bld(features='cxx cxxshlib') obj.name = 'libasdcp-dcpomatic' obj.target = 'asdcp-dcpomatic' obj.uselib = 'OPENSSL BOOST_FILESYSTEM' obj.use = 'libkumu-dcpomatic' obj.includes = ['.'] obj.export_includes = ['.'] obj.source = """ MPEG2_Parser.cpp MPEG.cpp JP2K_Codestream_Parser.cpp JP2K_Sequence_Parser.cpp JP2K.cpp PCM_Parser.cpp Wav.cpp TimedText_Parser.cpp KLV.cpp Dict.cpp MXFTypes.cpp MXF.cpp Index.cpp Metadata.cpp AS_02_JP2K.cpp AS_02_PCM.cpp AS_02_PHDR.cpp AS_02_TimedText.cpp AS_DCP.cpp AS_DCP_MXF.cpp AS_DCP_AES.cpp h__Reader.cpp h__02_Reader.cpp h__Writer.cpp h__02_Writer.cpp AS_DCP_MPEG2.cpp AS_DCP_JP2K.cpp AS_DCP_PCM.cpp AS_DCP_TimedText.cpp AS_DCP_ATMOS.cpp AS_DCP_DCData.cpp PCMParserList.cpp MDD.cpp DCData_Sequence_Parser.cpp DCData_ByteStream_Parser.cpp AtmosSyncChannel_Mixer.cpp AtmosSyncChannel_Generator.cpp PCMDataProviders.cpp SyncEncoder.cpp CRC16.cpp """ headers = """ KM_util.h KM_memio.h KM_platform.h KM_error.h KM_tai.h KM_fileio.h KM_prng.h KM_log.h KM_mutex.h AS_DCP.h AS_02.h dirent_win.h Metadata.h MXF.h MXFTypes.h KLV.h MDD.h """ bld.install_files('${PREFIX}/include/libasdcp-dcpomatic/asdcp', headers) if bld.env.STATIC: bld.install_files('${PREFIX}/lib', 'libkumu-dcpomatic.a') bld.install_files('${PREFIX}/lib', 'libasdcp-dcpomatic.a') obj = bld(features='cxx cxxprogram') obj.use = ['libkumu-dcpomatic', 'libasdcp-dcpomatic'] obj.uselib = "OPENSSL BOOST_FILESYSTEM" obj.includes = ['asdcp'] obj.source = 'asdcp-wrap.cpp' obj.target = 'asdcp-wrap' obj = bld(features='cxx cxxprogram') obj.use = ['libkumu-dcpomatic', 'libasdcp-dcpomatic'] obj.uselib = "OPENSSL BOOST_FILESYSTEM" obj.includes = ['asdcp'] obj.source = 'asdcp-unwrap.cpp' obj.target = 'asdcp-unwrap'