You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.9 KiB
75 lines
1.9 KiB
# Copyright 1999-2023 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=7
|
|
|
|
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/crypto++.asc
|
|
inherit flag-o-matic toolchain-funcs verify-sig
|
|
|
|
DESCRIPTION="C++ class library of cryptographic schemes"
|
|
HOMEPAGE="https://cryptopp.com"
|
|
SRC_URI="https://www.cryptopp.com/cryptopp${PV//.}.zip"
|
|
SRC_URI+=" verify-sig? ( https://cryptopp.com/cryptopp${PV//.}.zip.sig )"
|
|
S="${WORKDIR}"
|
|
|
|
LICENSE="Boost-1.0"
|
|
# ABI notes:
|
|
# - Bumped to 8.5 in 8.5.0 out of caution
|
|
# subslot is so version (was broken in 8.3.0, check on bumps!)
|
|
# Seems to be broken in 8.6 again too
|
|
#
|
|
# - See https://cryptopp.com/#news, but releases usually say
|
|
# "recompile of programs required". Even if it doesn't,
|
|
# verify with abidiff!
|
|
SLOT="0/${PV}"
|
|
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86 ~x64-macos"
|
|
IUSE="+asm static-libs"
|
|
|
|
BDEPEND="
|
|
app-arch/unzip
|
|
verify-sig? ( sec-keys/openpgp-keys-crypto++ )
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}/${PN}-8.2.0-musl-ldconfig.patch"
|
|
)
|
|
|
|
config_uncomment() {
|
|
sed -i -e "s://\s*\(#define\s*$1\):\1:" config.h || die
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
use asm || config_uncomment CRYPTOPP_DISABLE_ASM
|
|
|
|
# ASM isn't Darwin/Mach-O ready, #479554, buildsys doesn't grok CPPFLAGS
|
|
[[ ${CHOST} == *-darwin* ]] && config_uncomment CRYPTOPP_DISABLE_ASM
|
|
}
|
|
|
|
src_configure() {
|
|
export CXX="$(tc-getCXX)"
|
|
export LIBDIR="${EPREFIX}/usr/$(get_libdir)"
|
|
export PREFIX="${EPREFIX}/usr"
|
|
tc-export AR RANLIB
|
|
|
|
# Long history of correctness bugs:
|
|
# https://github.com/weidai11/cryptopp/issues/1134
|
|
# https://github.com/weidai11/cryptopp/issues/1141
|
|
# https://github.com/weidai11/cryptopp/pull/1147
|
|
append-flags -fno-strict-aliasing
|
|
filter-lto
|
|
|
|
default
|
|
}
|
|
|
|
src_compile() {
|
|
emake -f GNUmakefile all shared libcryptopp.pc
|
|
}
|
|
|
|
src_install() {
|
|
default
|
|
|
|
use static-libs || rm -f "${ED}"/usr/$(get_libdir)/*.a
|
|
}
|