88 lines
2.3 KiB
Bash
88 lines
2.3 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs as a template
|
|
# Set to 1 if prebuilt, 0 if not
|
|
# (the construct below is to allow overriding from env for script)
|
|
: ${LIBBSON_DOCS_PREBUILT:=1}
|
|
|
|
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
|
LIBBSON_DOCS_USEFLAG="+man"
|
|
|
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/mongo-c-driver.asc
|
|
|
|
inherit cmake dot-a verify-sig
|
|
|
|
DESCRIPTION="Library routines related to building,parsing and iterating BSON documents"
|
|
HOMEPAGE="https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson"
|
|
SRC_URI="
|
|
https://github.com/mongodb/mongo-c-driver/releases/download/${PV}/mongo-c-driver-${PV}.tar.gz
|
|
verify-sig? (
|
|
https://github.com/mongodb/mongo-c-driver/releases/download/${PV}/mongo-c-driver-${PV}.tar.gz.asc
|
|
)
|
|
"
|
|
if [[ ${LIBBSON_DOCS_PREBUILT} == 1 ]] ; then
|
|
SRC_URI+=" !man? ( https://people.znc.in/~dessa/gentoo/distfiles/${CATEGORY}/${PN}/${PN}-${PV}-docs.tar.xz )"
|
|
LIBBSON_DOCS_USEFLAG="man"
|
|
fi
|
|
|
|
S="${WORKDIR}/mongo-c-driver-${PV}"
|
|
|
|
LICENSE="Apache-2.0"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm64 ~hppa ~loong ~ppc ~riscv ~sparc ~x86"
|
|
IUSE="examples ${LIBBSON_DOCS_USEFLAG} static-libs"
|
|
|
|
# tests are covered in mongo-c-driver and are not easily runnable in here
|
|
RESTRICT="test"
|
|
|
|
BDEPEND="
|
|
man? (
|
|
<=dev-python/docutils-0.22
|
|
dev-python/sphinx
|
|
)
|
|
verify-sig? ( sec-keys/openpgp-keys-mongo-c-driver )
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}"/libbson-1.30.6-cmake4.patch
|
|
)
|
|
|
|
src_prepare() {
|
|
cmake_src_prepare
|
|
|
|
# remove doc files
|
|
sed -i '/^\s*install\s*(FILES COPYING NEWS/,/^\s*)/ {d}' CMakeLists.txt || die
|
|
}
|
|
|
|
src_configure() {
|
|
use static-libs && lto-guarantee-fat
|
|
local mycmakeargs=(
|
|
-DENABLE_EXAMPLES=OFF
|
|
-DENABLE_MAN_PAGES="$(usex man ON OFF)"
|
|
-DENABLE_MONGOC=OFF
|
|
-DENABLE_TESTS=OFF
|
|
-DENABLE_STATIC="$(usex static-libs ON OFF)"
|
|
-DENABLE_UNINSTALL=OFF
|
|
)
|
|
|
|
cmake_src_configure
|
|
}
|
|
|
|
src_install() {
|
|
if use examples; then
|
|
docinto examples
|
|
dodoc src/libbson/examples/*.c
|
|
fi
|
|
|
|
cmake_src_install
|
|
strip-lto-bytecode
|
|
|
|
# If USE=man, there'll be newly generated docs which we install instead.
|
|
if ! use man && [[ ${LIBBSON_DOCS_PREBUILT} == 1 ]] ; then
|
|
doman "${WORKDIR}"/${PN}-${PV}-docs/man*/*.[0-8]
|
|
fi
|
|
}
|