diff --git a/pkgs/development/libraries/mongocxx/default.nix b/pkgs/development/libraries/mongocxx/default.nix new file mode 100644 index 00000000000..ef6134c3e49 --- /dev/null +++ b/pkgs/development/libraries/mongocxx/default.nix @@ -0,0 +1,53 @@ +{ lib +, stdenv +, fetchFromGitHub +, mongoc +, cmake +, validatePkgConfig +, testers +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "mongocxx"; + version = "3.8.0"; + + src = fetchFromGitHub { + owner = "mongodb"; + repo = "mongo-cxx-driver"; + rev = "refs/tags/r${finalAttrs.version}"; + hash = "sha256-7pMVBWMIGV6k04/0rKULwNcl0NMO4hqMnOzWv+0/DrA="; + }; + + postPatch = '' + substituteInPlace src/bsoncxx/config/CMakeLists.txt \ + src/mongocxx/config/CMakeLists.txt \ + --replace "\\\''${prefix}/" "" + ''; + + nativeBuildInputs = [ + cmake + validatePkgConfig + ]; + + buildInputs = [ + mongoc + ]; + + cmakeFlags = [ + "-DCMAKE_CXX_STANDARD=20" + "-DBUILD_VERSION=${finalAttrs.version}" + "-DENABLE_UNINSTALL=OFF" + ]; + + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + + meta = with lib; { + description = "The official C++ client library for MongoDB"; + homepage = "http://mongocxx.org"; + license = licenses.asl20; + maintainers = with maintainers; [ adriandole ]; + pkgConfigModules = [ "libmongocxx" "libbsoncxx" ]; + platforms = platforms.all; + badPlatforms = [ "x86_64-darwin" ]; # needs sdk >= 10.14 + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 93dc94ddd48..fb26ba8c6c9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -40055,6 +40055,8 @@ with pkgs; mongoc = darwin.apple_sdk_11_0.callPackage ../development/libraries/mongoc { }; + mongocxx = callPackage ../development/libraries/mongocxx/default.nix { }; + mongoose = callPackage ../development/libraries/science/math/mongoose { }; morph = callPackage ../tools/package-management/morph { };