# Maintainer: Leonardo Arena pkgname=mongo-c-driver pkgver=1.15.1 pkgrel=0 pkgdesc="Client library written in C for MongoDB" url="https://github.com/mongodb/mongo-c-driver" arch="all !armhf !armv7" # sphinx package missing py-attrs license="Apache-2.0" makedepends="openssl-dev snappy-dev zlib-dev libtool py3-sphinx cmake zstd-dev" subpackages=" $pkgname-static:_static libbson-static:_libbson_static $pkgname-dev:_dev $pkgname-doc libbson libbson-dev " source="https://github.com/mongodb/mongo-c-driver/releases/download/$pkgver/mongo-c-driver-$pkgver.tar.gz" # NOTE: remove when sphinx-build gets attrs as a dependency makedepends="$makedepends py3-attrs" build() { mkdir -p "$srcdir"/build cd "$srcdir"/build cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DENABLE_BSON:STRING=ON \ -DENABLE_MONGOC:BOOL=ON \ -DENABLE_SSL:STRING=OPENSSL \ -DENABLE_AUTOMATIC_INIT_AND_CLEANUP:BOOL=OFF \ -DENABLE_MAN_PAGES:BOOL=ON \ -DENABLE_TESTS:BOOL=ON \ -DENABLE_EXAMPLES:BOOL=OFF \ -DSPHINX_EXECUTABLE:STRING=/usr/bin/sphinx-build-3 \ -DCMAKE_SKIP_RPATH=ON \ "$builddir" make } check() { cd "$srcdir"/build export MONGOC_TEST_SKIP_MOCK=on export MONGOC_TEST_SKIP_SLOW=on export MONGOC_TEST_SKIP_LIVE=on make check } package() { cd "$srcdir"/build make DESTDIR="$pkgdir" install # removes COPYING, NEWS, README, uninstall script rm -rf "$pkgdir/usr/share/mongo-c-driver" } libbson() { pkgdesc="Building, parsing, and iterating BSON documents" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libbson-*.so.* "$subpkgdir"/usr/lib/ } _static() { # Depend on the dev package that has the headers required # for compiling against, whether it is static or shared depends_static="mongo-c-driver-dev" default_static # Move the libbson static archive from the mongo-c-driver-static # back to $pkgdir it will be then moved to libbson-static mkdir -p "$pkgdir"/usr/lib mv "$subpkgdir"/usr/lib/libbson-static-1.0.a "$pkgdir"/usr/lib # Move development dependencies that only make sense in the context # of static libraries like libmongoc-static-1.0.pc mkdir -p "$subpkgdir"/usr/lib/pkgconfig mkdir -p "$subpkgdir"/usr/lib/cmake mv "$pkgdir"/usr/lib/pkgconfig/libmongoc-static-1.0.pc "$subpkgdir"/usr/lib/pkgconfig mv "$pkgdir"/usr/lib/cmake/libmongoc-static-1.0 "$subpkgdir"/usr/lib/cmake } _libbson_static() { # Depend on the dev package that has the headers required # for compiling against, whether it is static or shared depends_static="libbson-dev" default_static # Move development dependencies that only make sense in the context # of static libraries like libbson-static-1.0.pc mkdir -p "$subpkgdir"/usr/lib/pkgconfig mkdir -p "$subpkgdir"/usr/lib/cmake mv "$pkgdir"/usr/lib/pkgconfig/libbson-static-1.0.pc "$subpkgdir"/usr/lib/pkgconfig mv "$pkgdir"/usr/lib/cmake/libbson-static-1.0 "$subpkgdir"/usr/lib/cmake } _dev() { # This should be removed once abuild knows how to search for pkg-config # files that are in another subpackage that is also being created alongside # this one. depends_dev="libbson-dev" default_dev # libbson pkg-config files mkdir -p "$pkgdir"/usr/lib/pkgconfig mv "$subpkgdir"/usr/lib/pkgconfig/libbson-1.0.pc "$pkgdir"/usr/lib/pkgconfig # libbson solink mkdir -p "$pkgdir"/usr/lib mv "$subpkgdir"/usr/lib/libbson-1.0.so "$pkgdir"/usr/lib # libbson cmake file mkdir -p "$pkgdir"/usr/lib/cmake mv "$subpkgdir"/usr/lib/cmake/libbson-1.0 "$pkgdir"/usr/lib/cmake # libbson include files mkdir -p "$pkgdir"/usr/include mv "$subpkgdir"/usr/include/libbson-1.0 "$pkgdir"/usr/include } sha512sums="7544900809dd008da110b412acc1e5e42ea908d804fdf3bced8100e48f1695844605407c9733b285b8833b636bcaec8687df25a01c9749612c61df2325214fe5 mongo-c-driver-1.15.1.tar.gz"