summaryrefslogtreecommitdiff
path: root/src/wscript
blob: 5773ad10fbad50b53887eb4902d27cad2a1d8cc9 (plain)
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'