Add gcov test coverage (written to build/test/coverage) and a couple more tests.
[libdcp.git] / src / wscript
1 from waflib import TaskGen
2
3 def build(bld):
4     source = """
5              argb_frame.cc
6              asset.cc
7              certificate_chain.cc
8              certificates.cc
9              colour_matrix.cc
10              content.cc
11              cpl.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.cc
20              gamma_lut.cc
21              image.cc
22              interop_load_font.cc
23              interop_subtitle_content.cc
24              key.cc
25              local_time.cc
26              metadata.cc
27              mono_picture_mxf.cc
28              mono_picture_mxf_writer.cc
29              mono_picture_frame.cc
30              mxf.cc
31              mxf_writer.cc
32              object.cc
33              picture_mxf.cc
34              picture_mxf_writer.cc
35              reel.cc
36              reel_asset.cc
37              reel_mono_picture_asset.cc
38              reel_mxf_asset.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.cc
46              smpte_subtitle_content.cc
47              sound_mxf.cc
48              sound_mxf_writer.cc
49              sound_frame.cc
50              stereo_picture_mxf.cc
51              stereo_picture_mxf_writer.cc
52              stereo_picture_frame.cc
53              subtitle.cc
54              subtitle_content.cc
55              subtitle_string.cc
56              text.cc
57              types.cc
58              util.cc
59              version.cc
60              xyz_frame.cc
61              """
62
63     headers = """
64               asset.h
65               certificate_chain.h
66               certificates.h
67               colour_matrix.h
68               cpl.h
69               content.h
70               dcp.h
71               dcp_time.h
72               decrypted_kdm.h
73               decrypted_kdm_key.h
74               encrypted_kdm.h
75               exceptions.h
76               gamma_lut.h
77               image.h
78               interop_load_font.h
79               interop_subtitle_content.h
80               key.h
81               local_time.h
82               lut_cache.h
83               metadata.h
84               mono_picture_mxf.h
85               mono_picture_frame.h
86               mxf.h
87               mxf_writer.h
88               object.h
89               picture_mxf.h
90               picture_mxf_writer.h
91               raw_convert.h
92               rgb_xyz.h
93               reel.h
94               reel_asset.h
95               reel_mono_picture_asset.h
96               reel_mxf_asset.h
97               reel_picture_asset.h
98               reel_sound_asset.h
99               reel_stereo_picture_asset.h
100               reel_subtitle_asset.h
101               ref.h
102               argb_frame.h
103               signer.h
104               smpte_load_font.h
105               smpte_subtitle_content.h
106               sound_frame.h
107               sound_mxf.h
108               sound_mxf_writer.h
109               stereo_picture_mxf.h
110               stereo_picture_frame.h
111               subtitle.h
112               subtitle_content.h
113               subtitle_string.h
114               types.h
115               util.h
116               version.h
117               xyz_frame.h
118               """
119
120     # Main library
121     if bld.env.STATIC:
122         obj = bld(features='cxx cxxstlib')
123     else:
124         obj = bld(features='cxx cxxshlib')
125     obj.name = 'libdcp%s' % bld.env.API_VERSION
126     obj.target = 'dcp%s' % bld.env.API_VERSION
127     obj.export_includes = ['.']
128     obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1'
129     obj.use = 'libkumu-libdcp%s libasdcp-libdcp%s' % (bld.env.API_VERSION, bld.env.API_VERSION)
130     obj.source = source
131
132     # Library for gcov
133     if bld.is_defined('HAVE_GCOV'):
134         obj = bld(features='cxx cxxstlib')
135         obj.name = 'libdcp%s_gcov' % bld.env.API_VERSION
136         obj.target = 'dcp%s_gcov' % bld.env.API_VERSION
137         obj.export_includes = ['.']
138         obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1'
139         obj.use = 'libkumu-libdcp%s libasdcp-libdcp%s' % (bld.env.API_VERSION, bld.env.API_VERSION)
140         obj.source = source
141         obj.cppflags = ['-fprofile-arcs', '-ftest-coverage']
142
143     bld.install_files('${PREFIX}/include/libdcp%s/dcp' % bld.env.API_VERSION, headers)
144     if bld.env.STATIC:
145         bld.install_files('${PREFIX}/lib', 'libdcp%s.a' % bld.env.API_VERSION)