# Maintainer: Leonardo Arena pkgname=mongo-c-driver pkgver=1.16.2 pkgrel=0 pkgdesc="Client library written in C for MongoDB" url="https://github.com/mongodb/mongo-c-driver" arch="all" 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" build() { mkdir -p "$srcdir"/build cd "$srcdir"/build cmake \ -DCMAKE_BUILD_TYPE=None \ -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 \ -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/bson-1.0 "$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="0930a80692f08329cad558644c25c46da64a0c8b6a9fc7412db0f547dae63bf59e9d29ee774d329c63af186eea751670bf21ccee8cf255f8bc8d5bd78c0e736a mongo-c-driver-1.16.2.tar.gz"