summaryrefslogtreecommitdiff
path: root/src/wscript
blob: 3586805fe4509549a19e6008d5ec59e231df4fdd (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
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('.')
    major_minor = '%s.%s.0' % (s[0], s[1])
    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-carl'
    obj.target = 'kumu-carl'
    obj.uselib = 'OPENSSL BOOST_FILESYSTEM'
    obj.includes = ['.']
    obj.export_includes = ['.']
    obj.source = """
                 KM_fileio.cpp
                 KM_log.cpp
                 KM_util.cpp
                 KM_xml.cpp
                 KM_tai.cpp
                 KM_prng.cpp
                 """

    if bld.env.STATIC:
        obj = bld(features='cxx cxxstlib')
    else:
        obj = bld(features='cxx cxxshlib')

    obj.name = 'libasdcp-carl'
    obj.target = 'asdcp-carl'
    obj.uselib = 'OPENSSL BOOST_FILESYSTEM'
    obj.use = 'libkumu-carl'
    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.c
                 CRC16.c
                 """

    headers = """
              asdcp/KM_util.h
              asdcp/KM_memio.h
              asdcp/KM_platform.h
              asdcp/KM_error.h
              asdcp/KM_tai.h
              asdcp/KM_fileio.h
              asdcp/KM_prng.h
              asdcp/KM_log.h
              asdcp/KM_mutex.h
              asdcp/AS_DCP.h
              asdcp/AS_02.h
              asdcp/Metadata.h
              asdcp/MXF.h
              asdcp/MXFTypes.h
              asdcp/KLV.h
              asdcp/MDD.h
              """

    bld.install_files('${PREFIX}/include/libasdcp-carl/asdcp', headers)
    if bld.env.STATIC:
        bld.install_files('${PREFIX}/lib', 'libkumu-carl.a')
        bld.install_files('${PREFIX}/lib', 'libasdcp-carl.a')

    obj = bld(features='cxx cxxprogram')
    obj.use = ['libkumu-carl', 'libasdcp-carl']
    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-carl', 'libasdcp-carl']
    obj.uselib = "OPENSSL BOOST_FILESYSTEM"
    obj.includes = ['asdcp']
    obj.source = 'asdcp-unwrap.cpp'
    obj.target = 'asdcp-unwrap'