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