# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=6 inherit flag-o-matic toolchain-funcs DESCRIPTION="C++ class library of cryptographic schemes" HOMEPAGE="http://cryptopp.com" SRC_URI="mirror://sourceforge/cryptopp/cryptopp${PV//.}.zip" LICENSE="Boost-1.0" SLOT="0/5.6" # subslot is so version KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86 ~x64-macos" IUSE="static-libs" DEPEND="app-arch/unzip" S="${WORKDIR}" src_configure() { cp config.recommend config.h || die } src_compile() { # higher optimizations cause problems replace-flags -O3 -O2 # ASM isn't Darwin/Mach-O ready, #479554, buildsys doesn't grok CPPFLAGS [[ ${CHOST} == *-darwin* ]] && append-flags -DCRYPTOPP_DISABLE_X86ASM CXX="$(tc-getCXX)" \ emake -f GNUmakefile \ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ PREFIX="${EPREFIX}/usr" \ all shared } src_test() { # ensure that all test vectors have Unix line endings local file for file in TestVectors/* ; do edos2unix "${file}" done if ! CXX="$(tc-getCXX)" emake test ; then eerror "Crypto++ self-tests failed." eerror "Try to remove some optimization flags and reemerge Crypto++." die "emake test failed" fi } src_install() { emake \ DESTDIR="${ED}" \ PREFIX="${EPREFIX}/usr" \ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ install # remove leftovers as build system sucks rm -fr "${ED}"/usr/bin "${ED}"/usr/share/cryptopp use static-libs || rm -f "${ED}${EPREFIX}"/usr/$(get_libdir)/*.a # compatibility dosym cryptopp "${EPREFIX}"/usr/include/crypto++ for f in "${ED}${EPREFIX}"/usr/$(get_libdir)/*; do ln -s "$(basename "${f}")" "$(echo "${f}" | sed 's/cryptopp/crypto++/')" || die done }