5 , log4cxxSupport ? false
7 , snappySupport ? false
14 , gtestSupport ? false
27 Check if null or false
29 let result = enableFeature null
31 let result = enableFeature false
33 let result = enableFeature «derivation»
36 enableCmakeFeature = p: if (p == null || p == false) then "OFF" else "ON";
38 defaultOptionals = [ protobuf ]
39 ++ lib.optional snappySupport snappy.dev
40 ++ lib.optional zlibSupport zlib
41 ++ lib.optional zstdSupport zstd
42 ++ lib.optional log4cxxSupport log4cxx
43 ++ lib.optional asioSupport asio
44 ++ lib.optional (!asioSupport) boost180;
47 stdenv.mkDerivation (finalAttrs: rec {
51 src = fetchFromGitHub {
53 repo = "pulsar-client-cpp";
55 hash = "sha256-P1LhUH7V3EtWBXwPHQdN11mCjuyUyVdrtZsUItvC8xU=";
58 nativeBuildInputs = [ cmake pkg-config ]
60 ++ lib.optional gtestSupport gtest.dev;
62 buildInputs = [ jsoncpp openssl curl ]
66 "-DBUILD_TESTS=${enableCmakeFeature gtestSupport}"
67 "-DUSE_LOG4CXX=${enableCmakeFeature log4cxxSupport}"
68 "-DUSE_ASIO=${enableCmakeFeature asioSupport}"
71 doInstallCheck = true;
72 installCheckPhase = ''
73 echo ${lib.escapeShellArg ''
74 #include <pulsar/Client.h>
75 int main (int argc, char **argv) {
76 pulsar::Client client("pulsar://localhost:6650");
80 $CXX test.cc -L $out/lib -I $out/include -lpulsar -o test
84 homepage = "https://pulsar.apache.org/docs/next/client-libraries-cpp/";
85 description = "Apache Pulsar C++ library";
86 changelog = "https://github.com/apache/pulsar-client-cpp/releases/tag/v${version}";
87 platforms = platforms.all;
88 license = licenses.asl20;
89 maintainers = with maintainers; [ corbanr gaelreyrol ];