Rename Font -> FontAsset; add dcpdumpsub tool.
[libdcp.git] / src / wscript
1 from waflib import TaskGen
2
3 def build(bld):
4     source = """
5              asset.cc
6              certificate_chain.cc
7              certificates.cc
8              colour_conversion.cc
9              colour_matrix.cc
10              cpl.cc
11              dcp.cc        
12              dcp_time.cc
13              decrypted_kdm.cc
14              decrypted_kdm_key.cc
15              encrypted_kdm.cc
16              exceptions.cc
17              file.cc
18              font_asset.cc
19              font_node.cc
20              gamma_transfer_function.cc
21              interop_load_font_node.cc
22              interop_subtitle_asset.cc
23              key.cc
24              local_time.cc
25              metadata.cc
26              modified_gamma_transfer_function.cc
27              mono_picture_asset.cc
28              mono_picture_asset_writer.cc
29              mono_picture_frame.cc
30              mxf.cc
31              asset_writer.cc
32              object.cc
33              picture_asset.cc
34              picture_asset_writer.cc
35              reel.cc
36              reel_asset.cc
37              reel_mono_picture_asset.cc
38              reel_mxf.cc
39              reel_picture_asset.cc
40              reel_sound_asset.cc
41              reel_stereo_picture_asset.cc
42              reel_subtitle_asset.cc
43              rgb_xyz.cc
44              signer.cc
45              smpte_load_font_node.cc
46              smpte_subtitle_asset.cc
47              sound_asset.cc
48              sound_asset_writer.cc
49              sound_frame.cc
50              stereo_picture_asset.cc
51              stereo_picture_asset_writer.cc
52              stereo_picture_frame.cc
53              subtitle_node.cc
54              subtitle_asset.cc
55              subtitle_string.cc
56              text_node.cc
57              transfer_function.cc
58              types.cc
59              util.cc
60              version.cc
61              xyz_image.cc
62              """
63
64     headers = """
65               asset.h
66               certificate_chain.h
67               certificates.h
68               chromaticity.h
69               colour_conversion.h
70               colour_matrix.h
71               cpl.h
72               dcp.h
73               dcp_time.h
74               data.h
75               decrypted_kdm.h
76               decrypted_kdm_key.h
77               encrypted_kdm.h
78               exceptions.h
79               font_asset.h
80               gamma_transfer_function.h
81               interop_load_font_node.h
82               interop_subtitle_asset.h
83               key.h
84               load_font_node.h
85               local_time.h
86               metadata.h
87               mono_picture_asset.h
88               mono_picture_frame.h
89               modified_gamma_transfer_function.h
90               mxf.h
91               asset_writer.h
92               object.h
93               picture_asset.h
94               picture_asset_writer.h
95               raw_convert.h
96               rgb_xyz.h
97               reel.h
98               reel_asset.h
99               reel_mono_picture_asset.h
100               reel_mxf.h
101               reel_picture_asset.h
102               reel_sound_asset.h
103               reel_stereo_picture_asset.h
104               reel_subtitle_asset.h
105               ref.h
106               signer.h
107               smpte_load_font_node.h
108               smpte_subtitle_asset.h
109               sound_frame.h
110               sound_asset.h
111               sound_asset_writer.h
112               stereo_picture_asset.h
113               stereo_picture_frame.h
114               subtitle_node.h
115               subtitle_asset.h
116               subtitle_string.h
117               transfer_function.h
118               types.h
119               util.h
120               version.h
121               xyz_image.h
122               """
123
124     # Main library
125     if bld.env.STATIC:
126         obj = bld(features='cxx cxxstlib')
127     else:
128         obj = bld(features='cxx cxxshlib')
129     obj.name = 'libdcp%s' % bld.env.API_VERSION
130     obj.target = 'dcp%s' % bld.env.API_VERSION
131     obj.export_includes = ['.']
132     obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1'
133     obj.use = 'libkumu-libdcp%s libasdcp-libdcp%s' % (bld.env.API_VERSION, bld.env.API_VERSION)
134     obj.source = source
135
136     # Library for gcov
137     if bld.is_defined('HAVE_GCOV'):
138         obj = bld(features='cxx cxxstlib')
139         obj.name = 'libdcp%s_gcov' % bld.env.API_VERSION
140         obj.target = 'dcp%s_gcov' % bld.env.API_VERSION
141         obj.export_includes = ['.']
142         obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1'
143         obj.use = 'libkumu-libdcp%s libasdcp-libdcp%s' % (bld.env.API_VERSION, bld.env.API_VERSION)
144         obj.source = source
145         obj.cppflags = ['-fprofile-arcs', '-ftest-coverage', '-fno-inline', '-fno-default-inline', '-fno-elide-constructors', '-g', '-O0']
146
147     bld.install_files('${PREFIX}/include/libdcp%s/dcp' % bld.env.API_VERSION, headers)
148     if bld.env.STATIC:
149         bld.install_files('${PREFIX}/lib', 'libdcp%s.a' % bld.env.API_VERSION)