summaryrefslogtreecommitdiff
path: root/dev-cpp/xsd
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-cpp/xsd
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-cpp/xsd')
-rw-r--r--dev-cpp/xsd/Manifest9
-rw-r--r--dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch50
-rw-r--r--dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch59
-rw-r--r--dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch11
-rw-r--r--dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch159
-rw-r--r--dev-cpp/xsd/metadata.xml11
-rw-r--r--dev-cpp/xsd/xsd-4.0.0.ebuild150
7 files changed, 449 insertions, 0 deletions
diff --git a/dev-cpp/xsd/Manifest b/dev-cpp/xsd/Manifest
new file mode 100644
index 000000000000..2dd955fad281
--- /dev/null
+++ b/dev-cpp/xsd/Manifest
@@ -0,0 +1,9 @@
+AUX xsd-4.0.0-disable_examples_and_tests.patch 1847 SHA256 500585b4301816c33d2ee02e5857963b71ef32fb7b282072b735afcc09ab06f3 SHA512 3ec04678f9b1b7825d0a594e91b2d79550e26cf8c8992dfb73aa5af98aa70f463f0da9275177d97caea3e637fbbb3a2a21768f585c1237484442cd60ce36027f WHIRLPOOL 65dbf07f36e2f7baff180e0d10229e8a7d76f4000d5180af962456a562a3e1ba17c09b6adc5384c06b2ff7dd3a4b35dc348bbf1cb117f9c23998ded0c75900ba
+AUX xsd-4.0.0-fix-expat-support.patch 2271 SHA256 a60fa5da0e31efe9aafeb96d81e0142b8048a49937b7cc595ec4ab4b680981d3 SHA512 ef4be3e1f7a27d1b06e7b7eca2824865302b57c6f8cfc46054c880e908a9dea42cf524415cf2ba041c06ea93317ca51eb087e422882651f31e687a1096dd3105 WHIRLPOOL 0e2372c22fd3b9c49e967778f51cc5764cb8afa5878cf7031608632f1f30e32f71fd3aa1ced8dcd0ad58472f149b8955b574d8ae9afd000922d027b136362f59
+AUX xsd-4.0.0-fix-include.patch 441 SHA256 58da51da9af9b7807c83c2910e1de1aa43b9007b2adb512729ff7a5e58802cf3 SHA512 c785caada9f39a027f7373c26bbf6e4e3c5e01c62b1581bf4643746abdfd64727c047d92630b51a1100f3ca198ffcd9a29bdd4fb277f756541c71973a42ad789 WHIRLPOOL b1495c6c9f15d803ab42241190de8df5567f6ceb0e50d4608c17eaf3efb42aaa9afdee3e797aa7004bb0031cd4936822f08b64845211c0fae2375520f066ad35
+AUX xsd-4.0.0-xsdcxx-rename.patch 5759 SHA256 e4ba3d6c0c959bd6b8fc799557e0b72d5dd780ca2f6dfd009f9736b4ac586118 SHA512 82d7bdefc4b1c0e5cefbcad84b556e2739d034047b13d74007e67bc0192585a25b5f0d44a9d795d88ad9d95f42ee7621417643b7353c5c4ea3e9319f1566509f WHIRLPOOL 2ca657857827937753d3c62585a3adb38cab7747750687689f18f73789fbd683cc8e30d923f538651d19b6a8f5d7a171728ca0591a571a36112d8b5f1895204b
+DIST xsd-4.0.0.tar.bz2 1042144 SHA256 dd85f46407c7ec161518f3fdc64263afb68b057b1bc0b09b47d792d1fabd29c2 SHA512 0bac508e6948ef9e2399daed2554fcff3eaa79a7e62a3b245c777fb8bef3c5c80a35403bffdb00f72d3cf1b411747a91c059dd1c932b0a00baf076d3e60da527 WHIRLPOOL 84cd9baeb2a9fbfa24dafd212950ca7e7ab808d3bc432c8fbf3837c4aad2d1aefabc5fa7f6ac1fb69584b6bd136f04badf435c28024009b0edc00ea7f2ef78ef
+EBUILD xsd-4.0.0.ebuild 3868 SHA256 b7006a3d1f5de18cb30670e1a4479df4eb1eab1a458de6f38f9fdfe57913bc5f SHA512 775f1169c2640f1cd618fbd7cf364b2377db61f8ec3bff7c4365b7aab35f4c5a2395edd2e4986c37aa10b8e8ad38da9b08411c31d769fa71bd8c4f2be32bfd79 WHIRLPOOL 86f4de479b092f8558695909ca409d650556d5bdd3f434180a290f3364828fe7f917e179c13abc4dddf469ddc41a63cf0471b5382c9eb2e19e07f51c9562e5cc
+MISC ChangeLog 3149 SHA256 15f08a8f7bd88b83ea16c4c40ebf445c9e3a14dad83a86207d8a3278a878991f SHA512 cec1007da417fd7b648279a41c566b9a548426db03108091a7dc710e08b7fd73a9f6e65179d3fd38067da73aa140d724bc79e8e13a3bd7cbaa833ab82fa466a4 WHIRLPOOL a1b9891c1180c0dfa5c1d3cbe9f797c4474aa7719d96313003da66891566b708d92d93a6d4e7f81a9c2d4e6f6e96f597eaebbc67d87cc7d0b20b374931066405
+MISC ChangeLog-2015 2537 SHA256 b56a8fd61af730b8d303ae71653895be07b3577c314fba4b9708d930292564c3 SHA512 bf5bcb8e94dff6a62cd8939998dbba2a0d945021b29966862a03b7401f64d4d56386b485f64dee9c09042b0dc27f79439077bb65b002cdfc3b8b126559954d9d WHIRLPOOL f7c3fca87fff3c4265897008e3dc1b6bc8779e7abf322d90f0bef524ce2793fe64f4b0cbcd3b3d6a637003bd7cbbd27fca17e554abe800e0539536aae371e416
+MISC metadata.xml 347 SHA256 3e3f3bd8769ffa7aa0bce86a67be2c710b4be0140c2d0fe1ad0a6f9181fc8ee2 SHA512 b8c8e3dfc35f84888d8ab3faee76261ee449e15c83e9672e8b33c0929b573f7b009894dd4e0c341ffb03f45bfb13c50d2f90f89075679f643faf41fd686b96ba WHIRLPOOL 87f8220b4a85db0cf75ee395ec387ce056f75810fed232e13bdf8023a623e534f2e260e0a93a9ff5633633b6f540b79f093207a290a7f75c2c268416c63c2995
diff --git a/dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch b/dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch
new file mode 100644
index 000000000000..d04487a17762
--- /dev/null
+++ b/dev-cpp/xsd/files/xsd-4.0.0-disable_examples_and_tests.patch
@@ -0,0 +1,50 @@
+--- a/makefile
++++ b/makefile
+@@ -15,8 +15,6 @@
+ .PHONY: $(dist-pre)
+
+ $(default): $(out_base)/xsd/ \
+- $(out_base)/tests/ \
+- $(out_base)/examples/ \
+ $(out_base)/doc/
+
+ # Test.
+@@ -28,7 +26,6 @@
+ #
+ $(install): $(out_base)/xsd/.install \
+ $(out_base)/libxsd/.install \
+- $(out_base)/examples/.install \
+ $(out_base)/doc/.install
+ $(call install-dir,$(src_base)/dist/examples/build,$(install_doc_dir)/xsd/examples/build)
+ $(call install-dir,$(src_base)/dist/examples/cxx,$(install_doc_dir)/xsd/examples/cxx,-name makefile)
+@@ -44,7 +41,6 @@
+ #
+ $(dist): $(out_base)/xsd/.dist \
+ $(out_base)/libxsd/.dist \
+- $(out_base)/examples/.dist \
+ $(out_base)/doc/.dist
+ $(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build)
+ $(call install-dir,$(src_base)/dist/examples/cxx,$(dist_prefix)/examples/cxx,-name makefile)
+@@ -59,7 +55,6 @@
+ $(dist-win): $(dist-pre) \
+ $(out_base)/xsd/.dist-win \
+ $(out_base)/libxsd/.dist-win \
+- $(out_base)/examples/.dist-win \
+ $(out_base)/doc/.dist-win
+ $(call install-dir,$(src_base)/dist/etc,$(dist_prefix)/etc)
+ $(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build)
+@@ -90,14 +85,10 @@
+ # Clean.
+ #
+ $(clean): $(out_base)/xsd/.clean \
+- $(out_base)/tests/.clean \
+- $(out_base)/examples/.clean \
+ $(out_base)/doc/.clean
+
+ $(call include,$(bld_root)/install.make)
+
+ $(call import,$(src_base)/xsd/makefile)
+ $(call import,$(src_base)/libxsd/makefile)
+-$(call import,$(src_base)/tests/makefile)
+-$(call import,$(src_base)/examples/makefile)
+ $(call import,$(src_base)/doc/makefile)
diff --git a/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch b/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch
new file mode 100644
index 000000000000..e91b74eb4c35
--- /dev/null
+++ b/dev-cpp/xsd/files/xsd-4.0.0-fix-expat-support.patch
@@ -0,0 +1,59 @@
+## Fix bug in C++/Parser Expat Support http://scm.codesynthesis.com/?p=xsd/xsd.git;a=commitdiff;h=94cba986108a0e0f42295572ca42c356d59328d7
+### Author Boris Kolpackov <boris@codesynthesis.com>
+## Thu, 24 Jul 2014 11:40:01 +0100 (12:40 +0200)
+### Committer Boris Kolpackov <boris@codesynthesis.com>
+## Thu, 24 Jul 2014 11:40:01 +0100 (12:40 +0200)
+--- xsd/libxsd/xsd/cxx/parser/expat/elements.hxx
++++ xsd/libxsd/xsd/cxx/parser/expat/elements.hxx
+@@ -51,7 +51,9 @@ namespace xsd
+ }
+ };
+
+- typedef std::unique_ptr<XML_ParserStruct> parser_auto_ptr;
++ typedef
++ std::unique_ptr<XML_ParserStruct, parser_deleter>
++ parser_auto_ptr;
+ #else
+ // Simple auto pointer for Expat's XML_Parser object.
+ //
+--- xsd/libxsd/xsd/cxx/parser/expat/elements.txx
++++ xsd/libxsd/xsd/cxx/parser/expat/elements.txx
+@@ -283,9 +283,10 @@ namespace xsd
+ throw std::bad_alloc ();
+
+ if (system_id || public_id)
+- parse_begin (parser, system_id ? *system_id : *public_id, eh);
++ parse_begin (
++ parser.get (), system_id ? *system_id : *public_id, eh);
+ else
+- parse_begin (parser, eh);
++ parse_begin (parser.get (), eh);
+
+ // Temporarily unset the exception failbit. Also clear the
+ // fail bit when we reset the old state if it was caused
+@@ -310,8 +311,10 @@ namespace xsd
+ break;
+ }
+
+- if (XML_Parse (
+- parser, buf, is.gcount (), is.eof ()) == XML_STATUS_ERROR)
++ if (XML_Parse (parser.get (),
++ buf,
++ is.gcount (),
++ is.eof ()) == XML_STATUS_ERROR)
+ {
+ r = false;
+ break;
+##http://scm.codesynthesis.com/?p=xsd/xsd.git;a=commitdiff;h=0e5fab0664fb36c6253dfd7bb86d8985d1b349ef
+--- xsd/libxsd/xsd/cxx/parser/expat/elements.txx
++++ xsd/libxsd/xsd/cxx/parser/expat/elements.txx
+@@ -279,7 +279,7 @@ namespace xsd
+ {
+ parser_auto_ptr parser (XML_ParserCreateNS (0, XML_Char (' ')));
+
+- if (parser == 0)
++ if (parser.get () == 0)
+ throw std::bad_alloc ();
+
+ if (system_id || public_id)
+
diff --git a/dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch b/dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch
new file mode 100644
index 000000000000..85ea3e54313e
--- /dev/null
+++ b/dev-cpp/xsd/files/xsd-4.0.0-fix-include.patch
@@ -0,0 +1,11 @@
+--- a/xsd/xsd.cxx
++++ b/xsd/xsd.cxx
+@@ -15,7 +15,7 @@
+
+ #include <xsd-frontend/parser.hxx>
+ #include <xsd-frontend/transformations/anonymous.hxx>
+-#include <xsd-frontend/transformations/enum-synthesis.cxx>
++#include <xsd-frontend/transformations/enum-synthesis.hxx>
+ #include <xsd-frontend/transformations/restriction.hxx>
+ #include <xsd-frontend/transformations/schema-per-type.hxx>
+ #include <xsd-frontend/transformations/simplifier.hxx>
diff --git a/dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch b/dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch
new file mode 100644
index 000000000000..cb78348e7b67
--- /dev/null
+++ b/dev-cpp/xsd/files/xsd-4.0.0-xsdcxx-rename.patch
@@ -0,0 +1,159 @@
+Description: change docu from xsd to xsdcxx
+Author: Jörg Frings-Fürst <debian@jff-webhosting.net>
+Reviewed-by:
+Last-Update: 2014-07-22
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/xsd/doc/xsd.1
+===================================================================
+--- a/doc/xsd.1
++++ b/doc/xsd.1
+@@ -1,16 +1,16 @@
+ .\" Process this file with
+ .\" groff -man -Tascii xsd.1
+ .\"
+-.TH XSD 1 "July 2014" "XSD 4.0.0"
++.TH XSDCXX 1 "July 2014" "XSDCXX 4.0.0"
+ .SH NAME
+-xsd \- W3C XML Schema to C++ Compiler
++xsdcxx \- W3C XML Schema to C++ Compiler
+ .\"
+ .\"
+ .\"
+ .\"--------------------------------------------------------------------
+ .SH SYNOPSIS
+ .\"--------------------------------------------------------------------
+-.B xsd
++.B xsdcxx
+ .I command
+ .B [
+ .I options
+@@ -20,19 +20,19 @@
+ .I file
+ .B ...]
+ .in
+-.B xsd help
++.B xsdcxx help
+ .B [
+ .I command
+ .B ]
+ .in
+-.B xsd version
++.B xsdcxx version
+ .\"
+ .\"
+ .\"
+ .\"--------------------------------------------------------------------
+ .SH DESCRIPTION
+ .\"--------------------------------------------------------------------
+-.B xsd
++.B xsdcxx
+ generates vocabulary-specific, statically-typed C++ mapping from W3C XML
+ Schema definitions. Particular mapping to produce is selected by a
+ .IR command .
+@@ -96,7 +96,7 @@
+ .PP
+ .RS
+ .RS 3
+-.B xsd help
++.B xsdcxx help
+ .I command
+ .RE
+ .PP
+@@ -133,9 +133,9 @@
+
+ When the C++11 mode is selected, you normally don't need to perform any
+ extra steps other than enable C++11 in your C++ compiler, if required\. The
+-XSD compiler will automatically add the necessary macro defines to the
+-generated header files that will switch the header-only XSD runtime library
+-(\fBlibxsd\fP) to the C++11 mode\. However, if you include any of the XSD
++XSDCXX compiler will automatically add the necessary macro defines to the
++generated header files that will switch the header-only XSDCXX runtime library
++(\fBlibxsd\fP) to the C++11 mode\. However, if you include any of the XSDCXX
+ runtime headers directly in your application (normally you just include the
+ generated headers), then you will need to define the \fBXSD_CXX11\fP macro
+ for your entire project\.
+@@ -1632,7 +1632,7 @@
+ .\"
+ .SH DIAGNOSTICS
+ If the input file is not a valid W3C XML Schema definition,
+-.B xsd
++.B xsdcxx
+ will issue diagnostic messages to
+ .B STDERR
+ and exit with non-zero exit code.
+Index: trunk/xsd/doc/xsd.xhtml
+===================================================================
+--- a/doc/xsd.xhtml
++++ b/doc/xsd.xhtml
+@@ -3,11 +3,11 @@
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+
+ <head>
+- <title>XSD 4.0.0 Compiler Command Line Manual</title>
++ <title>XSDCXX 4.0.0 Compiler Command Line Manual</title>
+
+ <meta name="copyright" content="&copy; 2005-2014 Code Synthesis Tools CC"/>
+ <meta name="keywords" content="xsd,xml,schema,c++,mapping,data,binding,code,generator,manual,man,page"/>
+- <meta name="description" content="XSD Compiler Command Line Manual"/>
++ <meta name="description" content="XSDCXX Compiler Command Line Manual"/>
+
+ <link rel="stylesheet" type="text/css" href="default.css" />
+
+@@ -50,19 +50,19 @@
+
+ <h1>NAME</h1>
+
+- <p>xsd - W3C XML Schema to C++ Compiler</p>
++ <p>xsdcxx - W3C XML Schema to C++ Compiler</p>
+
+ <h1>SYNOPSIS</h1>
+
+ <dl id="synopsis">
+- <dt><code><b>xsd</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt>
+- <dt><code><b>xsd help</b> [<i>command</i>]</code></dt>
+- <dt><code><b>xsd version</b></code></dt>
++ <dt><code><b>xsdcxx</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt>
++ <dt><code><b>xsdcxx help</b> [<i>command</i>]</code></dt>
++ <dt><code><b>xsdcxx version</b></code></dt>
+ </dl>
+
+ <h1>DESCRIPTION</h1>
+
+- <p><code><b>xsd</b></code> generates vocabulary-specific, statically-typed
++ <p><code><b>xsdcxx</b></code> generates vocabulary-specific, statically-typed
+ C++ mapping from W3C XML Schema definitions. Particular mapping to
+ produce is selected by a <code><i>command</i></code>. Each mapping has
+ a number of mapping-specific <code><i>options</i></code> that should
+@@ -138,10 +138,10 @@
+
+ <p>When the C++11 mode is selected, you normally don't need to perform any
+ extra steps other than enable C++11 in your C++ compiler, if required. The
+- XSD compiler will automatically add the necessary macro defines to the
+- generated header files that will switch the header-only XSD runtime library
++ XSDCXX compiler will automatically add the necessary macro defines to the
++ generated header files that will switch the header-only XSDCXX runtime library
+ (<code><b>libxsd</b></code>) to the C++11 mode. However, if you include any
+- of the XSD runtime headers directly in your application (normally you just
++ of the XSDCXX runtime headers directly in your application (normally you just
+ include the generated headers), then you will need to define the
+ <code><b>XSD_CXX11</b></code> macro for your entire project.</p></dd>
+
+@@ -219,7 +219,7 @@
+
+ <p>For example, if you have file <code><b>hello.xsd</b></code> with
+ namespace <code><b>http://example.com/hello</b></code> and you run
+- <code><b>xsd</b></code> on this file, then the string in question will
++ <code><b>xsdcxx</b></code> on this file, then the string in question will
+ be:</p>
+
+ <p><code><b>hello.xsd. http://example.com/hello</b></code></p>
+@@ -1530,7 +1530,7 @@
+ <h1>DIAGNOSTICS</h1>
+
+ <p>If the input file is not a valid W3C XML Schema definition,
+- <code><b>xsd</b></code> will issue diagnostic messages to STDERR
++ <code><b>xsdcxx</b></code> will issue diagnostic messages to STDERR
+ and exit with non-zero exit code.</p>
+
+ <h1>BUGS</h1>
diff --git a/dev-cpp/xsd/metadata.xml b/dev-cpp/xsd/metadata.xml
new file mode 100644
index 000000000000..e09ce345ca3b
--- /dev/null
+++ b/dev-cpp/xsd/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cpp@gentoo.org</email>
+ <name>Gentoo C++ Project</name>
+ </maintainer>
+ <use>
+ <flag name="ace">Enable support for serializing to/from an ACE CDR stream</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-cpp/xsd/xsd-4.0.0.ebuild b/dev-cpp/xsd/xsd-4.0.0.ebuild
new file mode 100644
index 000000000000..d8d0d919b86a
--- /dev/null
+++ b/dev-cpp/xsd/xsd-4.0.0.ebuild
@@ -0,0 +1,150 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs versionator
+
+DESCRIPTION="An open-source, cross-platform W3C XML Schema to C++ data binding compiler"
+HOMEPAGE="http://www.codesynthesis.com/products/xsd/"
+SRC_URI="http://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="ace doc examples test zlib"
+
+RDEPEND="
+ >=dev-libs/xerces-c-3.0.0
+ dev-libs/boost:=[threads]
+ dev-cpp/libcutl
+ >=dev-cpp/libxsd-frontend-2.0.0
+ ace? ( dev-libs/ace )
+ zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}
+ dev-util/build
+ doc? ( app-doc/doxygen )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.0-disable_examples_and_tests.patch"
+ "${FILESDIR}/${PN}-4.0.0-xsdcxx-rename.patch"
+ "${FILESDIR}/${PN}-4.0.0-fix-expat-support.patch"
+ "${FILESDIR}/${PN}-4.0.0-fix-include.patch"
+)
+
+src_configure() {
+ # Maintainer notes:
+ # * xqilla is not required, this is only whether or not to include the xpath
+ # examples which require xqilla
+ mkdir -p \
+ build/cxx/gnu \
+ build/import/lib{ace,boost,cult,backend-elements,xerces-c,xqilla,xsd-frontend,z} || die
+
+ cat >> build/configuration-dynamic.make <<- EOF || die
+ xsd_with_zlib := $(usex zlib y n)
+ xsd_with_ace := $(usex ace y n)
+ xsd_with_xdr := y
+ xsd_with_xqilla := y
+ xsd_with_boost_date_time := y
+ xsd_with_boost_serialization := y
+ EOF
+
+ cat >> build/cxx/configuration-dynamic.make <<- EOF || die
+ cxx_id := gnu
+ cxx_optimize := n
+ cxx_debug := n
+ cxx_rpath := n
+ cxx_pp_extra_options :=
+ cxx_extra_options := ${CXXFLAGS}
+ cxx_ld_extra_options := ${LDFLAGS}
+ cxx_extra_libs :=
+ cxx_extra_lib_paths :=
+ EOF
+
+ cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF || die
+ cxx_gnu := $(tc-getCXX)
+ cxx_gnu_libraries :=
+ cxx_gnu_optimization_options :=
+ EOF
+
+ # cli
+ cat >> build/import/cli/configuration-dynamic.make <<- EOF || die
+ cli_installed := y
+ EOF
+
+ # ace
+ cat >> build/import/libace/configuration-dynamic.make <<- EOF || die
+ libace_installed := y
+ EOF
+
+ # boost
+ cat >> build/import/libboost/configuration-dynamic.make <<- EOF || die
+ libboost_installed := y
+ libboost_system := y
+ EOF
+
+ # libcutl
+ cat >> build/import/libcutl/configuration-dynamic.make <<- EOF || die
+ libcutl_installed := y
+ EOF
+
+ # xerces-c
+ cat >> build/import/libxerces-c/configuration-dynamic.make <<- EOF || die
+ libxerces_c_installed := y
+ EOF
+
+ # xqilla
+ cat >> build/import/libxqilla/configuration-dynamic.make <<- EOF || die
+ libxqilla_installed := y
+ EOF
+
+ # libxsd-frontend
+ cat >> build/import/libxsd-frontend/configuration-dynamic.make <<- EOF || die
+ libxsd_frontend_installed := y
+ EOF
+
+ # zlib
+ cat >> build/import/libz/configuration-dynamic.make <<- EOF || die
+ libz_installed := y
+ EOF
+}
+
+src_compile() {
+ emake verbose=1
+
+ if use doc; then
+ emake -C "${S}/doc/cxx/tree/reference" verbose=1
+ fi
+ if use test; then
+ XERCESC_NLS_HOME="${EPREFIX}/usr/share/xerces-c/msg" emake -C tests verbose=1
+ fi
+}
+
+src_test() {
+ XERCESC_NLS_HOME="${EPREFIX}/usr/share/xerces-c/msg" emake -C tests test
+}
+
+src_install() {
+ emake install_prefix="${ED%/}/usr" install
+
+ # Renaming binary/manpage to avoid collision with mono-2.0's xsd/xsd2
+ mv "${ED%/}"/usr/bin/xsd{,cxx} || die
+ mv "${ED%/}"/usr/share/man/man1/xsd{,cxx}.1 || die
+
+ # remove incorrectly installed documentation
+ rm -rf "${ED%/}/usr/share/doc" || die
+ # clean out all non-html related files
+ find doc/ \( -iname '*.1' -o -iname 'makefile*' -o -iname '*doxygen' \
+ -o -iname '*doxytag' -o -iname '*html2ps' \) -delete || die
+
+ DOCS=( NEWS README FLOSSE )
+ HTML_DOCS=( doc/. )
+ einstalldocs
+
+ newdoc libxsd/README README.libxsd
+ newdoc libxsd/FLOSSE FLOSSE.libxsd
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}