# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # Generate using a slight deviation from https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs # Set to 1 if prebuilt, 0 if not # (the construct below is to allow overriding from env for script) : ${LIBBSON_DOCS_PREBUILT:=0} # Default to generating docs (inc. man pages) if no prebuilt; overridden later LIBBSON_DOCS_USEFLAG="+man" PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/mongo-c-driver.asc inherit cmake dot-a python-any-r1 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? ( $(python_gen_any_dep ' <=dev-python/docutils-0.22[${PYTHON_USEDEP}] dev-python/sphinx[${PYTHON_USEDEP}] ') ) verify-sig? ( sec-keys/openpgp-keys-mongo-c-driver ) " PATCHES=( "${FILESDIR}"/libbson-1.30.6-cmake4.patch ) python_check_deps() { python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" } 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 }