#
-# Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
+# Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
#
# This file is part of libsub.
#
option_defaults = { 'force-cpp11': False }
def dependencies(target, options):
- libdcp = ('libdcp', 'd39880e')
- libcxml = ('libcxml', 'c336f86')
- return (('asdcplib', 'carl'), libcxml, libdcp)
+ libdcp = ('libdcp', 'd39880e')
+ return (('asdcplib', 'carl'), libdcp)
def build(target, options):
cmd = './waf configure --prefix=%s' % target.directory
+++ /dev/null
-/*
- Copyright (C) 2014 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.
-
-*/
-
-/** @file src/xml.h
- * @brief Some useful XML helper functions.
- */
-
-#ifndef LIBSUB_XML_H
-#define LIBSUB_XML_H
-
-#include "exceptions.h"
-#include <libcxml/cxml.h>
-
-namespace sub
-{
-
-template <class T>
-std::shared_ptr<T>
-optional_type_child (cxml::Node const & node, std::string name)
-{
- std::list<std::shared_ptr<cxml::Node> > n = node.node_children (name);
- if (n.size() > 1) {
- throw XMLError ("duplicate XML tag");
- } else if (n.empty ()) {
- return std::shared_ptr<T> ();
- }
-
- return std::shared_ptr<T> (new T (n.front ()));
-}
-
-template <class T>
-std::shared_ptr<T> type_child (std::shared_ptr<const cxml::Node> node, std::string name) {
- return std::shared_ptr<T> (new T (node->node_child (name)));
-}
-
-template <class T>
-std::shared_ptr<T>
-optional_type_child (std::shared_ptr<const cxml::Node> node, std::string name)
-{
- return optional_type_child<T> (*node.get(), name);
-}
-
-template <class T>
-std::list<std::shared_ptr<T> >
-type_children (cxml::Node const & node, std::string name)
-{
- std::list<std::shared_ptr<cxml::Node> > n = node.node_children (name);
- std::list<std::shared_ptr<T> > r;
- for (typename std::list<std::shared_ptr<cxml::Node> >::iterator i = n.begin(); i != n.end(); ++i) {
- r.push_back (std::shared_ptr<T> (new T (*i)));
- }
- return r;
-}
-
-template <class T>
-std::list<std::shared_ptr<T> >
-type_children (std::shared_ptr<const cxml::Node> node, std::string name)
-{
- return type_children<T> (*node.get(), name);
-}
-
-template <class T>
-std::list<std::shared_ptr<T> >
-type_grand_children (cxml::Node const & node, std::string name, std::string sub)
-{
- std::shared_ptr<const cxml::Node> p = node.node_child (name);
- return type_children<T> (p, sub);
-}
-
-template <class T>
-std::list<std::shared_ptr<T> >
-type_grand_children (std::shared_ptr<const cxml::Node> node, std::string name, std::string sub)
-{
- return type_grand_children<T> (*node.get(), name, sub);
-}
-
-}
-
-#endif
def options(opt):
opt.load('compiler_cxx')
opt.add_option('--enable-debug', action='store_true', default=False, help='build with debugging information and without optimisation')
- opt.add_option('--static', action='store_true', default=False, help='build libsub statically and link statically to cxml and dcp')
+ opt.add_option('--static', action='store_true', default=False, help='build libsub statically and link statically to dcp')
opt.add_option('--target-windows', action='store_true', default=False, help='set up to do a cross-compile to make a Windows package')
opt.add_option('--disable-tests', action='store_true', default=False, help='disable building of tests')
conf.check_cfg(package='openssl', args='--cflags --libs', uselib_store='OPENSSL', mandatory=True)
if conf.options.static:
- conf.check_cfg(package='libcxml', atleast_version='0.16.0', args='--cflags', uselib_store='CXML', mandatory=True)
- conf.env.HAVE_CXML = 1
- conf.env.LIB_CXML = ['glibmm-2.4', 'glib-2.0', 'pcre', 'sigc-2.0', 'rt', 'xml++-2.6', 'xml2', 'pthread', 'lzma', 'dl', 'z']
- conf.env.STLIB_CXML = ['cxml']
conf.check_cfg(package='libdcp-1.0', atleast_version='1.6.2', args='--cflags', uselib_store='DCP', mandatory=True)
conf.env.HAVE_DCP = 1
conf.env.STLIB_DCP = ['dcp-1.0', 'asdcp-carl', 'kumu-carl', 'openjp2']
conf.env.LIB_DCP = ['ssl', 'crypto', 'xmlsec1-openssl', 'xmlsec1']
else:
- conf.check_cfg(package='libcxml', atleast_version='0.16.0', args='--cflags --libs', uselib_store='CXML', mandatory=True)
conf.check_cfg(package='libdcp-1.0', atleast_version='1.6.2', args='--cflags --libs', uselib_store='DCP', mandatory=True)
conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP]