1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
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('${LIBDIR}', ['libkumu-dcpomatic.a', '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'
|