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
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'
|