From 3d73fba2a4f92a08200571c77081604586e0dc93 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 15:08:47 +0100 Subject: cscript tweaks. --- cscript | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cscript b/cscript index 5413fdbc..30fd4aa6 100644 --- a/cscript +++ b/cscript @@ -1,17 +1,17 @@ import os -def build(env, target): - cmd = './waf configure --prefix=%s' % env.work_dir_cscript() +def build(target): + cmd = './waf configure --prefix=%s' % target.work_dir_cscript() if target.platform == 'linux': cmd += ' --static-libdcp --static-openjpeg' elif target.platform == 'windows': cmd += ' --target-windows' elif target.platform == 'osx': cmd += ' --osx' - env.command(cmd) - env.command('./waf build install') + target.command(cmd) + target.command('./waf build install') def make_doxygen(env): os.makedirs('build/doc') - env.command('doxygen') + target.command('doxygen') return os.path.abspath('build/doc/html') -- cgit v1.2.3 From 78d8ec2d20494e00da8f20091d65be940595c955 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 15:45:12 +0100 Subject: cscript tweak. --- cscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cscript b/cscript index 30fd4aa6..bfe16052 100644 --- a/cscript +++ b/cscript @@ -11,7 +11,7 @@ def build(target): target.command(cmd) target.command('./waf build install') -def make_doxygen(env): +def make_doxygen(target): os.makedirs('build/doc') target.command('doxygen') return os.path.abspath('build/doc/html') -- cgit v1.2.3 From adbf32154e0322121a50ef285c9835d636ee0da1 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 16:24:26 +0100 Subject: Fix static flags. --- cscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cscript b/cscript index bfe16052..668805c2 100644 --- a/cscript +++ b/cscript @@ -3,7 +3,7 @@ import os def build(target): cmd = './waf configure --prefix=%s' % target.work_dir_cscript() if target.platform == 'linux': - cmd += ' --static-libdcp --static-openjpeg' + cmd += ' --static' elif target.platform == 'windows': cmd += ' --target-windows' elif target.platform == 'osx': -- cgit v1.2.3 From efb32ed996ce74cebf512ae37b3e0bfe5177b825 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 16:32:11 +0100 Subject: Add libcxml dep to cscript. --- cscript | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cscript b/cscript index 668805c2..24f82c86 100644 --- a/cscript +++ b/cscript @@ -1,5 +1,12 @@ import os +def dependencies(target): + if target.platform == 'windows': + return () + else: + # XXX: should be some versions in here + return (('libcxml', None)) + def build(target): cmd = './waf configure --prefix=%s' % target.work_dir_cscript() if target.platform == 'linux': -- cgit v1.2.3 From 787062dca7ebc44cf69f9dbab759ec530ba5d657 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 16:38:34 +0100 Subject: Tweak cscript. --- cscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cscript b/cscript index 24f82c86..cec6d88b 100644 --- a/cscript +++ b/cscript @@ -5,7 +5,7 @@ def dependencies(target): return () else: # XXX: should be some versions in here - return (('libcxml', None)) + return (('libcxml', None),) def build(target): cmd = './waf configure --prefix=%s' % target.work_dir_cscript() -- cgit v1.2.3 From bf9eb612ef464db95c365e0de4ebd98ab23e5b9c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 16:40:05 +0100 Subject: Tweak cscript. --- cscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cscript b/cscript index cec6d88b..a1a9232d 100644 --- a/cscript +++ b/cscript @@ -5,7 +5,7 @@ def dependencies(target): return () else: # XXX: should be some versions in here - return (('libcxml', None),) + return (('libcxml', None), ('openjpeg-cdist', None)) def build(target): cmd = './waf configure --prefix=%s' % target.work_dir_cscript() -- cgit v1.2.3 From 221113dc6844bb0beb8d32544601396649c2616c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 16:50:00 +0100 Subject: Fix static build. --- examples/wscript | 2 +- test/wscript | 6 +++--- tools/wscript | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/wscript b/examples/wscript index 46d3287b..05cca98f 100644 --- a/examples/wscript +++ b/examples/wscript @@ -2,7 +2,7 @@ def build(bld): obj = bld(features = 'cxx cxxprogram') obj.name = 'examples' obj.use = 'libdcp' - obj.uselib = 'OPENJPEG' + obj.uselib = 'OPENJPEG CXML' obj.source = 'make_dcp.cc' obj.target = 'make_dcp' obj.install_path = '' diff --git a/test/wscript b/test/wscript index 43ca7d73..4a2f60a5 100644 --- a/test/wscript +++ b/test/wscript @@ -18,7 +18,7 @@ def configure(conf): def build(bld): obj = bld(features = 'cxx cxxprogram') obj.name = 'tests' - obj.uselib = 'BOOST_TEST OPENJPEG' + obj.uselib = 'BOOST_TEST OPENJPEG CXML' obj.use = 'libdcp' obj.source = 'tests.cc' obj.target = 'tests' @@ -26,7 +26,7 @@ def build(bld): obj = bld(features = 'cxx cxxprogram') obj.name = 'subs_in_out' - obj.uselib = 'BOOST_TEST OPENJPEG' + obj.uselib = 'BOOST_TEST OPENJPEG CXML' obj.use = 'libdcp' obj.source = 'subs_in_out.cc' obj.target = 'subs_in_out' @@ -34,7 +34,7 @@ def build(bld): obj = bld(features = 'cxx cxxprogram') obj.name = 'rewrite_subs' - obj.uselib = 'BOOST_TEST OPENJPEG' + obj.uselib = 'BOOST_TEST OPENJPEG CXML' obj.use = 'libdcp' obj.source = 'rewrite_subs.cc' obj.target = 'rewrite_subs' diff --git a/tools/wscript b/tools/wscript index a79b3c9d..e4a32534 100644 --- a/tools/wscript +++ b/tools/wscript @@ -1,13 +1,13 @@ def build(bld): obj = bld(features = 'cxx cxxprogram') obj.use = ['libdcp'] - obj.uselib = 'OPENJPEG' + obj.uselib = 'OPENJPEG CXML' obj.source = 'dcpdiff.cc' obj.target = 'dcpdiff' obj = bld(features = 'cxx cxxprogram') obj.use = ['libdcp'] - obj.uselib = 'OPENJPEG' + obj.uselib = 'OPENJPEG CXML' obj.source = 'dcpinfo.cc' obj.target = 'dcpinfo' -- cgit v1.2.3 From 3fe4497fdb70f0e39535eb746af58093ddea001b Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 21:28:58 +0100 Subject: Fix install prefix. --- cscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cscript b/cscript index a1a9232d..b56c1d63 100644 --- a/cscript +++ b/cscript @@ -8,7 +8,7 @@ def dependencies(target): return (('libcxml', None), ('openjpeg-cdist', None)) def build(target): - cmd = './waf configure --prefix=%s' % target.work_dir_cscript() + cmd = './waf configure --prefix=%s/%s' % (target.work_dir_cscript(), target.install_prefix) if target.platform == 'linux': cmd += ' --static' elif target.platform == 'windows': -- cgit v1.2.3 From 71c0db318e478259f038982fd979c3fd916e2b42 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 18 Jun 2013 23:52:55 +0100 Subject: cscript fiddling. --- cscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cscript b/cscript index b56c1d63..a1a9232d 100644 --- a/cscript +++ b/cscript @@ -8,7 +8,7 @@ def dependencies(target): return (('libcxml', None), ('openjpeg-cdist', None)) def build(target): - cmd = './waf configure --prefix=%s/%s' % (target.work_dir_cscript(), target.install_prefix) + cmd = './waf configure --prefix=%s' % target.work_dir_cscript() if target.platform == 'linux': cmd += ' --static' elif target.platform == 'windows': -- cgit v1.2.3 From bc346667528fa4e0e76701f48f15c986ba0a999d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 19 Jun 2013 16:53:09 +0100 Subject: Bump version --- wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wscript b/wscript index 5b4ec52c..a68939bd 100644 --- a/wscript +++ b/wscript @@ -2,7 +2,7 @@ import subprocess import os APPNAME = 'libdcp' -VERSION = '0.54pre' +VERSION = '0.54' def options(opt): opt.load('compiler_cxx') -- cgit v1.2.3 From 65c74c74e003b574758bb0be58d60badeffe297c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 19 Jun 2013 16:53:09 +0100 Subject: Bump version --- wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wscript b/wscript index a68939bd..6f421cf6 100644 --- a/wscript +++ b/wscript @@ -2,7 +2,7 @@ import subprocess import os APPNAME = 'libdcp' -VERSION = '0.54' +VERSION = '0.55pre' def options(opt): opt.load('compiler_cxx') -- cgit v1.2.3 From 5fdaf6d2cf0377d7a326063065c6af5adbf68a92 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 20 Jun 2013 11:05:56 +0000 Subject: Missing install file. --- src/wscript | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wscript b/src/wscript index 37151e51..67fc2539 100644 --- a/src/wscript +++ b/src/wscript @@ -51,6 +51,7 @@ def build(bld): types.h util.h version.h + xml.h """ bld.install_files('${PREFIX}/include/libdcp', headers) -- cgit v1.2.3 From 95d1bfda7b310c70da7f8ce467b7d1eb7d02469c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 20 Jun 2013 11:19:21 +0000 Subject: Include trimming. --- src/cpl.cc | 1 + src/subtitle_asset.cc | 1 + src/subtitle_asset.h | 11 +++++++++-- src/wscript | 1 - test/rewrite_subs.cc | 1 + 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/cpl.cc b/src/cpl.cc index fd705680..02530357 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -27,6 +27,7 @@ #include "parse/asset_map.h" #include "reel.h" #include "metadata.h" +#include "exceptions.h" using std::string; using std::stringstream; diff --git a/src/subtitle_asset.cc b/src/subtitle_asset.cc index ca91e2c7..2a244a27 100644 --- a/src/subtitle_asset.cc +++ b/src/subtitle_asset.cc @@ -21,6 +21,7 @@ #include #include #include "subtitle_asset.h" +#include "parse/subtitle.h" #include "util.h" #include "xml.h" diff --git a/src/subtitle_asset.h b/src/subtitle_asset.h index 2da1ce7b..a76a3076 100644 --- a/src/subtitle_asset.h +++ b/src/subtitle_asset.h @@ -17,14 +17,21 @@ */ +#include #include "asset.h" -#include "xml.h" #include "dcp_time.h" -#include "parse/subtitle.h" namespace libdcp { +namespace parse +{ + class Font; + class Text; + class Subtitle; + class LoadFont; +} + class Subtitle { public: diff --git a/src/wscript b/src/wscript index 67fc2539..37151e51 100644 --- a/src/wscript +++ b/src/wscript @@ -51,7 +51,6 @@ def build(bld): types.h util.h version.h - xml.h """ bld.install_files('${PREFIX}/include/libdcp', headers) diff --git a/test/rewrite_subs.cc b/test/rewrite_subs.cc index adb9f6b4..8c055d9e 100644 --- a/test/rewrite_subs.cc +++ b/test/rewrite_subs.cc @@ -3,6 +3,7 @@ #include "cpl.h" #include "reel.h" #include "subtitle_asset.h" +#include "exceptions.h" using std::cout; using std::cerr; -- cgit v1.2.3 From 9292ce1176d68f31ad1fbbe358563b79c8ec9088 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 1 Jul 2013 15:03:30 +0100 Subject: Slightly more informative output from diff. --- src/cpl.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/cpl.cc b/src/cpl.cc index 02530357..685454df 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -28,6 +28,7 @@ #include "reel.h" #include "metadata.h" #include "exceptions.h" +#include "compose.hpp" using std::string; using std::stringstream; @@ -270,17 +271,19 @@ CPL::equals (CPL const & other, EqualityOptions opt, boost::function Date: Mon, 1 Jul 2013 15:06:21 +0100 Subject: Missing file. --- src/compose.hpp | 393 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 src/compose.hpp diff --git a/src/compose.hpp b/src/compose.hpp new file mode 100644 index 00000000..b3f410c8 --- /dev/null +++ b/src/compose.hpp @@ -0,0 +1,393 @@ +/* Defines String::compose(fmt, arg...) for easy, i18n-friendly + * composition of strings. + * + * Version 1.0. + * + * Copyright (c) 2002 Ole Laursen . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + */ + +// +// Basic usage is like +// +// std::cout << String::compose("This is a %1x%2 matrix.", rows, cols); +// +// See http://www.cs.aau.dk/~olau/compose/ or the included README.compose for +// more details. +// + +#ifndef STRING_COMPOSE_H +#define STRING_COMPOSE_H + +#include +#include +#include +#include // for multimap + +namespace StringPrivate +{ + // the actual composition class - using string::compose is cleaner, so we + // hide it here + class Composition + { + public: + // initialize and prepare format string on the form "text %1 text %2 etc." + explicit Composition(std::string fmt); + + // supply an replacement argument starting from %1 + template + Composition &arg(const T &obj); + + // compose and return string + std::string str() const; + + private: + std::ostringstream os; + int arg_no; + + // we store the output as a list - when the output string is requested, the + // list is concatenated to a string; this way we can keep iterators into + // the list instead of into a string where they're possibly invalidated on + // inserting a specification string + typedef std::list output_list; + output_list output; + + // the initial parse of the format string fills in the specification map + // with positions for each of the various %?s + typedef std::multimap specification_map; + specification_map specs; + }; + + // helper for converting spec string numbers + inline int char_to_int(char c) + { + switch (c) { + case '0': return 0; + case '1': return 1; + case '2': return 2; + case '3': return 3; + case '4': return 4; + case '5': return 5; + case '6': return 6; + case '7': return 7; + case '8': return 8; + case '9': return 9; + default: return -1000; + } + } + + inline bool is_number(int n) + { + switch (n) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + return true; + + default: + return false; + } + } + + + // implementation of class Composition + template + inline Composition &Composition::arg(const T &obj) + { + os << obj; + + std::string rep = os.str(); + + if (!rep.empty()) { // manipulators don't produce output + for (specification_map::const_iterator i = specs.lower_bound(arg_no), + end = specs.upper_bound(arg_no); i != end; ++i) { + output_list::iterator pos = i->second; + ++pos; + + output.insert(pos, rep); + } + + os.str(std::string()); + //os.clear(); + ++arg_no; + } + + return *this; + } + + inline Composition::Composition(std::string fmt) + : arg_no(1) + { + std::string::size_type b = 0, i = 0; + + // fill in output with the strings between the %1 %2 %3 etc. and + // fill in specs with the positions + while (i < fmt.length()) { + if (fmt[i] == '%' && i + 1 < fmt.length()) { + if (fmt[i + 1] == '%') { // catch %% + fmt.replace(i, 2, "%"); + ++i; + } + else if (is_number(fmt[i + 1])) { // aha! a spec! + // save string + output.push_back(fmt.substr(b, i - b)); + + int n = 1; // number of digits + int spec_no = 0; + + do { + spec_no += char_to_int(fmt[i + n]); + spec_no *= 10; + ++n; + } while (i + n < fmt.length() && is_number(fmt[i + n])); + + spec_no /= 10; + output_list::iterator pos = output.end(); + --pos; // safe since we have just inserted a string> + + specs.insert(specification_map::value_type(spec_no, pos)); + + // jump over spec string + i += n; + b = i; + } + else + ++i; + } + else + ++i; + } + + if (i - b > 0) // add the rest of the string + output.push_back(fmt.substr(b, i - b)); + } + + inline std::string Composition::str() const + { + // assemble string + std::string str; + + for (output_list::const_iterator i = output.begin(), end = output.end(); + i != end; ++i) + str += *i; + + return str; + } +} + +// now for the real thing(s) +namespace String +{ + // a series of functions which accept a format string on the form "text %1 + // more %2 less %3" and a number of templated parameters and spits out the + // composited string + template + inline std::string compose(const std::string &fmt, const T1 &o1) + { + StringPrivate::Composition c(fmt); + c.arg(o1); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8, const T9 &o9) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8, const T9 &o9, + const T10 &o10) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9) + .arg(o10); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8, const T9 &o9, + const T10 &o10, const T11 &o11) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9) + .arg(o10).arg(o11); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8, const T9 &o9, + const T10 &o10, const T11 &o11, const T12 &o12) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9) + .arg(o10).arg(o11).arg(o12); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8, const T9 &o9, + const T10 &o10, const T11 &o11, const T12 &o12, + const T13 &o13) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9) + .arg(o10).arg(o11).arg(o12).arg(o13); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8, const T9 &o9, + const T10 &o10, const T11 &o11, const T12 &o12, + const T13 &o13, const T14 &o14) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9) + .arg(o10).arg(o11).arg(o12).arg(o13).arg(o14); + return c.str(); + } + + template + inline std::string compose(const std::string &fmt, + const T1 &o1, const T2 &o2, const T3 &o3, + const T4 &o4, const T5 &o5, const T6 &o6, + const T7 &o7, const T8 &o8, const T9 &o9, + const T10 &o10, const T11 &o11, const T12 &o12, + const T13 &o13, const T14 &o14, const T15 &o15) + { + StringPrivate::Composition c(fmt); + c.arg(o1).arg(o2).arg(o3).arg(o4).arg(o5).arg(o6).arg(o7).arg(o8).arg(o9) + .arg(o10).arg(o11).arg(o12).arg(o13).arg(o14).arg(o15); + return c.str(); + } +} + + +#endif // STRING_COMPOSE_H -- cgit v1.2.3 From f51e1ec6f5cacd05196ce7625709c18f6b38f63e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 2 Jul 2013 11:14:15 +0100 Subject: Add debug option to cscript. --- cscript | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cscript b/cscript index a1a9232d..23dea9cd 100644 --- a/cscript +++ b/cscript @@ -15,6 +15,10 @@ def build(target): cmd += ' --target-windows' elif target.platform == 'osx': cmd += ' --osx' + + if target.debug: + cmd += ' --enable-debug' + target.command(cmd) target.command('./waf build install') -- cgit v1.2.3