{ lib, stdenv, fetchFromGitLab, windows }: stdenv.mkDerivation rec { pname = "lmdb"; version = "0.9.30"; src = fetchFromGitLab { domain = "git.openldap.org"; owner = "openldap"; repo = "openldap"; rev = "LMDB_${version}"; sha256 = "sha256-zLa9BtSPzujHAIZKDl69lTo72cI3m/GZejFw5v8bFsg="; }; postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb"; patches = [ ./hardcoded-compiler.patch ./bin-ext.patch ]; patchFlags = [ "-p3" ]; outputs = [ "bin" "out" "dev" ]; buildInputs = lib.optional stdenv.hostPlatform.isWindows windows.pthreads; makeFlags = [ "prefix=$(out)" "CC=${stdenv.cc.targetPrefix}cc" "AR=${stdenv.cc.targetPrefix}ar" ] ++ lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/liblmdb.so" ++ lib.optionals stdenv.hostPlatform.isWindows [ "SOEXT=.dll" "BINEXT=.exe" ]; doCheck = true; checkTarget = "test"; postInstall = '' moveToOutput bin "$bin" '' # add lmdb.pc (dynamic only) + '' mkdir -p "$dev/lib/pkgconfig" cat > "$dev/lib/pkgconfig/lmdb.pc" <