# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=5 inherit toolchain-funcs eutils 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 >=dev-libs/boost-1.52.0-r1:=[threads] >=dev-cpp/libcult-1.4.6-r1 >=dev-cpp/libxsd-frontend-1.18.0-r1 >=dev-cpp/libbackend-elements-1.7.2 ace? ( dev-libs/ace ) zlib? ( sys-libs/zlib )" DEPEND="${RDEPEND} dev-util/build doc? ( app-doc/doxygen )" src_prepare() { epatch \ "${FILESDIR}/${PV}-disable_examples_and_tests.patch" \ "${FILESDIR}/${PV}-xsdcxx-rename.patch" \ "${FILESDIR}/${PV}-fix_include.patch" \ "${FILESDIR}/${PV}-fix_tests.patch" \ "${FILESDIR}/${PV}-boost-filesystem-v2-deprecation.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} cat >> build/configuration-dynamic.make <<- EOF xsd_with_zlib := $(usex zlib y n) xsd_with_ace := $(usex ace y n) xsd_with_xdr := y xsd_with_dbxml := n xsd_with_xqilla := y xsd_with_boost_date_time := y xsd_with_boost_serialization := y EOF cat >> build/cxx/configuration-dynamic.make <<- EOF 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 cxx_gnu := $(tc-getCXX) cxx_gnu_libraries := cxx_gnu_optimization_options := EOF cat >> build/import/libace/configuration-dynamic.make <<- EOF libace_installed := y EOF cat >> build/import/libbackend-elements/configuration-dynamic.make <<- EOF libbackend_elements_installed := y EOF cat >> build/import/libboost/configuration-dynamic.make <<- EOF libboost_installed := y libboost_system := y EOF cat >> build/import/libcult/configuration-dynamic.make <<- EOF libcult_installed := y EOF cat >> build/import/libxerces-c/configuration-dynamic.make <<- EOF libxerces_c_installed := y EOF cat >> build/import/libxqilla/configuration-dynamic.make <<- EOF libxqilla_installed := y EOF cat >> build/import/libxsd-frontend/configuration-dynamic.make <<- EOF libxsd_frontend_installed := y EOF cat >> build/import/libz/configuration-dynamic.make <<- EOF libz_installed := y EOF MAKEOPTS+=" verbose=1" } src_compile() { default if use doc ; then emake -C "${S}/documentation/cxx/tree/reference" || die "generating reference docs failed" fi if use test ; then XERCESC_NLS_HOME="${ROOT}usr/share/xerces-c/msg" emake -C "${S}/tests" || die "building tests failed" fi } src_install() { emake install_prefix="${D}/usr" install || die "emake install failed" # Renaming binary/manpage to avoid collision with mono-2.0's xsd/xsd2 mv "${D}"/usr/bin/xsd{,cxx} mv "${D}"/usr/share/man/man1/xsd{,cxx}.1 rm -rf "${D}/usr/share/doc" dohtml -r -A xhtml -A pdf documentation/* dodoc NEWS README FLOSSE documentation/custom-literals.xsd newdoc libxsd/README README.libxsd newdoc libxsd/FLOSSE FLOSSE.libxsd if use examples; then insinto /usr/share/doc/${PF} doins -r examples fi } src_test() { XERCESC_NLS_HOME="${ROOT}usr/share/xerces-c/msg" emake -C "${S}/tests" test || die "tests failed" }