+#
+# Copyright (C) 2012-2016 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):
- if bld.env.STATIC:
- obj = bld(features = 'cxx cxxstlib')
- else:
- obj = bld(features = 'cxx cxxshlib')
-
- obj.name = 'libdcp'
- obj.target = 'dcp'
- obj.export_includes = ['.']
- obj.uselib = 'BOOST_FILESYSTEM BOOST_SIGNALS2 BOOST_DATETIME OPENSSL SIGC++ LIBXML++ OPENJPEG CXML XMLSEC1'
- obj.use = 'libkumu-libdcp libasdcp-libdcp'
- obj.source = """
- argb_frame.cc
- asset.cc
- certificates.cc
- colour_matrix.cc
- content.cc
- cpl.cc
- dcp.cc
- dcp_time.cc
- exceptions.cc
- gamma_lut.cc
- image.cc
- kdm.cc
- key.cc
- metadata.cc
- mono_picture_mxf.cc
- mono_picture_mxf_writer.cc
- mono_picture_frame.cc
- mxf.cc
- object.cc
- picture_mxf.cc
- picture_mxf_writer.cc
- rec709_linearised_gamma_lut.cc
- reel.cc
- rgb_xyz.cc
- signer.cc
- signer_chain.cc
- sound_mxf.cc
- sound_frame.cc
- srgb_linearised_gamma_lut.cc
- stereo_picture_mxf.cc
- stereo_picture_mxf_writer.cc
- stereo_picture_frame.cc
- subtitle_asset.cc
- types.cc
- util.cc
- version.cc
- xyz_frame.cc
- parse/asset_map.cc
- parse/cpl.cc
- parse/pkl.cc
- parse/subtitle.cc
- """
+ source = """
+ asset.cc
+ asset_writer.cc
+ atmos_asset.cc
+ atmos_asset_writer.cc
+ certificate_chain.cc
+ certificate.cc
+ colour_conversion.cc
+ colour_matrix.cc
+ cpl.cc
+ data.cc
+ dcp.cc
+ dcp_time.cc
+ decrypted_kdm.cc
+ decryption_context.cc
+ decrypted_kdm_key.cc
+ encrypted_kdm.cc
+ encryption_context.cc
+ exceptions.cc
+ file.cc
+ font_asset.cc
+ gamma_transfer_function.cc
+ interop_load_font_node.cc
+ interop_subtitle_asset.cc
+ j2k.cc
+ key.cc
+ local_time.cc
+ locale_convert.cc
+ metadata.cc
+ modified_gamma_transfer_function.cc
+ mono_picture_asset.cc
+ mono_picture_asset_writer.cc
+ mono_picture_frame.cc
+ mxf.cc
+ name_format.cc
+ object.cc
+ openjpeg_image.cc
+ picture_asset.cc
+ picture_asset_writer.cc
+ raw_convert.cc
+ reel.cc
+ reel_asset.cc
+ reel_atmos_asset.cc
+ reel_mono_picture_asset.cc
+ reel_mxf.cc
+ reel_picture_asset.cc
+ reel_sound_asset.cc
+ reel_stereo_picture_asset.cc
+ reel_subtitle_asset.cc
+ ref.cc
+ rgb_xyz.cc
+ smpte_load_font_node.cc
+ smpte_subtitle_asset.cc
+ sound_asset.cc
+ sound_asset_writer.cc
+ stereo_picture_asset.cc
+ stereo_picture_asset_writer.cc
+ stereo_picture_frame.cc
+ subtitle_asset.cc
+ subtitle_asset_internal.cc
+ subtitle_string.cc
+ transfer_function.cc
+ types.cc
+ util.cc
+ version.cc
+ """
headers = """
asset.h
- certificates.h
+ asset_reader.h
+ asset_writer.h
+ atmos_asset.h
+ atmos_asset_reader.h
+ atmos_asset_writer.h
+ atmos_frame.h
+ certificate_chain.h
+ certificate.h
+ chromaticity.h
+ colour_conversion.h
colour_matrix.h
cpl.h
dcp.h
+ dcp_assert.h
dcp_time.h
+ data.h
+ decrypted_kdm.h
+ decrypted_kdm_key.h
+ decryption_context.h
+ encrypted_kdm.h
+ encryption_context.h
exceptions.h
- gamma_lut.h
- image.h
- kdm.h
+ font_asset.h
+ frame.h
+ gamma_transfer_function.h
+ interop_load_font_node.h
+ interop_subtitle_asset.h
+ j2k.h
key.h
- lut.h
- lut_cache.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
+ name_format.h
object.h
- picture_mxf.h
- picture_mxf_writer.h
+ openjpeg_image.h
+ picture_asset.h
+ picture_asset_writer.h
+ raw_convert.h
rgb_xyz.h
- rec709_linearised_gamma_lut.h
reel.h
- argb_frame.h
- signer.h
- signer_chain.h
- sound_mxf.h
+ reel_asset.h
+ reel_atmos_asset.h
+ reel_mono_picture_asset.h
+ reel_mxf.h
+ reel_picture_asset.h
+ reel_sound_asset.h
+ reel_stereo_picture_asset.h
+ reel_subtitle_asset.h
+ ref.h
+ smpte_load_font_node.h
+ smpte_subtitle_asset.h
sound_frame.h
- srgb_linearised_gamma_lut.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_asset.h
+ subtitle_string.h
+ transfer_function.h
types.h
util.h
version.h
- xyz_frame.h
"""
- bld.install_files('${PREFIX}/include/libdcp', headers)
+ # Main library
+ if bld.env.STATIC:
+ obj = bld(features='cxx cxxstlib')
+ else:
+ obj = bld(features='cxx cxxshlib')
+ 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 ASDCPLIB_CTH'
+ obj.use = 'libkumu-libdcp%s libasdcp-libdcp%s' % (bld.env.API_VERSION, bld.env.API_VERSION)
+ obj.source = source
+
+ # Library for gcov
+ if bld.is_defined('HAVE_GCOV'):
+ obj = bld(features='cxx cxxstlib')
+ 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 ASDCPLIB_CTH'
+ 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']
+
+ bld.install_files('${PREFIX}/include/libdcp%s/dcp' % bld.env.API_VERSION, headers)
if bld.env.STATIC:
- bld.install_files('${PREFIX}/lib', 'libdcp.a')
+ bld.install_files('${PREFIX}/lib', 'libdcp%s.a' % bld.env.API_VERSION)