diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-03-16 21:01:00 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-03-21 20:25:17 +0100 |
| commit | 98c19786875a24786f2e0ecb3a54e1711bdcd307 (patch) | |
| tree | f97dadc7d1f2270fead5da68c8c9c84a2a171be8 /src/wscript | |
| parent | 029917a06659f4fa313e41f7bc77b4273166609d (diff) | |
Add waf build system.
Diffstat (limited to 'src/wscript')
| -rw-r--r-- | src/wscript | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/src/wscript b/src/wscript new file mode 100644 index 0000000..5773ad1 --- /dev/null +++ b/src/wscript @@ -0,0 +1,130 @@ +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' |
