summaryrefslogtreecommitdiff
path: root/src/wscript
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-03-16 21:01:00 +0100
committerCarl Hetherington <cth@carlh.net>2024-03-21 20:25:17 +0100
commit98c19786875a24786f2e0ecb3a54e1711bdcd307 (patch)
treef97dadc7d1f2270fead5da68c8c9c84a2a171be8 /src/wscript
parent029917a06659f4fa313e41f7bc77b4273166609d (diff)
Add waf build system.
Diffstat (limited to 'src/wscript')
-rw-r--r--src/wscript130
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'