summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/xsd/xsd-4.0.0.ebuild')
-rw-r--r--dev-cpp/xsd/xsd-4.0.0.ebuild151
1 files changed, 151 insertions, 0 deletions
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..a898c343ad5b
--- /dev/null
+++ b/dev-cpp/xsd/xsd-4.0.0.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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
+}