Split ReelClosedCaptionAsset into Interop and SMPTE parts.
[libdcp.git] / src / wscript
index d6444aee507b049b853884de2a9ebd313b0d8b8b..f6e0d15b00269bb1790ae559d682f9f3690e26dc 100644 (file)
+#
+#    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#    In addition, as a special exception, the copyright holders give
+#    permission to link the code of portions of this program with the
+#    OpenSSL library under certain conditions as described in each
+#    individual source file, and distribute linked combinations
+#    including the two.
+#
+#    You must obey the GNU General Public License in all respects
+#    for all of the code used other than OpenSSL.  If you modify
+#    file(s) with this exception, you may extend this exception to your
+#    version of the file(s), but you are not obligated to do so.  If you
+#    do not wish to do so, delete this exception statement from your
+#    version.  If you delete this exception statement from all source
+#    files in the program, then also delete it here.
+#
+
 from waflib import TaskGen
 
 def build(bld):
     source = """
-             argb_frame.cc
+             array_data.cc
              asset.cc
+             asset_factory.cc
+             asset_writer.cc
+             atmos_asset.cc
+             atmos_asset_writer.cc
+             bitstream.cc
              certificate_chain.cc
-             certificates.cc
+             certificate.cc
+             chromaticity.cc
              colour_conversion.cc
-             colour_matrix.cc
-             content.cc
+             combine.cc
              cpl.cc
-             dcp.cc        
+             data.cc
+             dcp.cc
              dcp_time.cc
              decrypted_kdm.cc
              decrypted_kdm_key.cc
              encrypted_kdm.cc
              exceptions.cc
-             file.cc
-             font.cc
+             font_asset.cc
+             fsk.cc
              gamma_transfer_function.cc
-             image.cc
-             interop_load_font.cc
-             interop_subtitle_content.cc
+             identity_transfer_function.cc
+             interop_load_font_node.cc
+             interop_subtitle_asset.cc
+             j2k_transcode.cc
              key.cc
+             language_tag.cc
              local_time.cc
+             locale_convert.cc
              metadata.cc
              modified_gamma_transfer_function.cc
-             mono_picture_mxf.cc
-             mono_picture_mxf_writer.cc
+             mono_picture_asset.cc
+             mono_picture_asset_writer.cc
              mono_picture_frame.cc
              mxf.cc
-             mxf_writer.cc
+             name_format.cc
              object.cc
-             picture_mxf.cc
-             picture_mxf_writer.cc
+             openjpeg_image.cc
+             picture_asset.cc
+             picture_asset_writer.cc
+             pkl.cc
+             raw_convert.cc
              reel.cc
              reel_asset.cc
+             reel_atmos_asset.cc
+             reel_closed_caption_asset.cc
+             reel_encryptable_asset.cc
+             reel_file_asset.cc
+             reel_interop_closed_caption_asset.cc
+             reel_interop_subtitle_asset.cc
              reel_mono_picture_asset.cc
-             reel_mxf_asset.cc
              reel_picture_asset.cc
+             reel_markers_asset.cc
+             reel_smpte_closed_caption_asset.cc
+             reel_smpte_subtitle_asset.cc
              reel_sound_asset.cc
              reel_stereo_picture_asset.cc
              reel_subtitle_asset.cc
+             ref.cc
              rgb_xyz.cc
-             signer.cc
-             smpte_load_font.cc
-             smpte_subtitle_content.cc
-             sound_mxf.cc
-             sound_mxf_writer.cc
+             s_gamut3_transfer_function.cc
+             smpte_load_font_node.cc
+             smpte_subtitle_asset.cc
+             sound_asset.cc
+             sound_asset_writer.cc
              sound_frame.cc
-             stereo_picture_mxf.cc
-             stereo_picture_mxf_writer.cc
+             stereo_picture_asset.cc
+             stereo_picture_asset_writer.cc
              stereo_picture_frame.cc
              subtitle.cc
-             subtitle_content.cc
+             subtitle_asset.cc
+             subtitle_asset_internal.cc
+             subtitle_image.cc
              subtitle_string.cc
-             text.cc
              transfer_function.cc
              types.cc
              util.cc
+             verify.cc
+             verify_j2k.cc
              version.cc
-             xyz_frame.cc
              """
 
     headers = """
+              array_data.h
               asset.h
+              asset_reader.h
+              asset_writer.h
+              atmos_asset.h
+              atmos_asset_reader.h
+              atmos_asset_writer.h
+              atmos_frame.h
               certificate_chain.h
-              certificates.h
+              certificate.h
+              chromaticity.h
               colour_conversion.h
-              colour_matrix.h
+              combine.h
+              compose.hpp
               cpl.h
-              content.h
+              crypto_context.h
+              data.h
               dcp.h
+              dcp_assert.h
               dcp_time.h
               decrypted_kdm.h
               decrypted_kdm_key.h
               encrypted_kdm.h
               exceptions.h
+              font_asset.h
+              frame.h
+              fsk.h
               gamma_transfer_function.h
-              image.h
-              interop_load_font.h
-              interop_subtitle_content.h
+              identity_transfer_function.h
+              interop_load_font_node.h
+              interop_subtitle_asset.h
+              j2k_transcode.h
               key.h
-              load_font.h
+              language_tag.h
+              load_font_node.h
               local_time.h
+              locale_convert.h
               metadata.h
-              mono_picture_mxf.h
+              mono_picture_asset.h
+              mono_picture_asset_reader.h
               mono_picture_frame.h
               modified_gamma_transfer_function.h
               mxf.h
-              mxf_writer.h
+              name_format.h
               object.h
-              picture_mxf.h
-              picture_mxf_writer.h
+              openjpeg_image.h
+              picture_asset.h
+              picture_asset_writer.h
+              pkl.h
               raw_convert.h
               rgb_xyz.h
               reel.h
               reel_asset.h
+              reel_atmos_asset.h
+              reel_encryptable_asset.h
+              reel_file_asset.h
+              reel_interop_closed_caption_asset.h
+              reel_interop_subtitle_asset.h
+              reel_markers_asset.h
               reel_mono_picture_asset.h
-              reel_mxf_asset.h
               reel_picture_asset.h
               reel_sound_asset.h
+              reel_smpte_closed_caption_asset.h
+              reel_smpte_subtitle_asset.h
               reel_stereo_picture_asset.h
               reel_subtitle_asset.h
               ref.h
-              argb_frame.h
-              signer.h
-              smpte_load_font.h
-              smpte_subtitle_content.h
+              s_gamut3_transfer_function.h
+              smpte_load_font_node.h
+              smpte_subtitle_asset.h
               sound_frame.h
-              sound_mxf.h
-              sound_mxf_writer.h
-              stereo_picture_mxf.h
+              sound_asset.h
+              sound_asset_reader.h
+              sound_asset_writer.h
+              stereo_picture_asset.h
+              stereo_picture_asset_reader.h
+              stereo_picture_asset_writer.h
               stereo_picture_frame.h
               subtitle.h
-              subtitle_content.h
+              subtitle_asset.h
+              subtitle_image.h
               subtitle_string.h
               transfer_function.h
               types.h
               util.h
+              verify.h
+              verify_j2k.h
               version.h
-              xyz_frame.h
               """
 
     # Main library
@@ -131,17 +217,19 @@ def build(bld):
     obj.name = 'libdcp%s' % bld.env.API_VERSION
     obj.target = 'dcp%s' % bld.env.API_VERSION
     obj.export_includes = ['.']
-    obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1'
-    obj.use = 'libkumu-libdcp%s libasdcp-libdcp%s' % (bld.env.API_VERSION, bld.env.API_VERSION)
+    obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1 ASDCPLIB_CTH XERCES'
     obj.source = source
 
     # Library for gcov
     if bld.is_defined('HAVE_GCOV'):
-        obj = bld(features='cxx cxxstlib')
+        if bld.env.STATIC:
+            obj = bld(features='cxx cxxstlib')
+        else:
+            obj = bld(features='cxx cxxshlib')
         obj.name = 'libdcp%s_gcov' % bld.env.API_VERSION
         obj.target = 'dcp%s_gcov' % bld.env.API_VERSION
         obj.export_includes = ['.']
-        obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1'
+        obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1 ASDCPLIB_CTH XERCES'
         obj.use = 'libkumu-libdcp%s libasdcp-libdcp%s' % (bld.env.API_VERSION, bld.env.API_VERSION)
         obj.source = source
         obj.cppflags = ['-fprofile-arcs', '-ftest-coverage', '-fno-inline', '-fno-default-inline', '-fno-elide-constructors', '-g', '-O0']