diff --git a/nix/amqp-cpp.nix b/nix/amqp-cpp.nix new file mode 100644 index 000000000..c3bff418b --- /dev/null +++ b/nix/amqp-cpp.nix @@ -0,0 +1,35 @@ +{ stdenv +, lib +, cmake +, fetchFromGitHub +, openssl +, darwin +}: + +stdenv.mkDerivation rec { + pname = "amqp-cpp"; + version = "4.3.16"; + + src = fetchFromGitHub { + owner = "CopernicaMarketingSoftware"; + repo = "amqp-cpp"; + rev = "v${version}"; + sha256 = "sha256-aBLNdw9LhHFwnIt70vIYlX1/j2IUTmpm5Ub+ZImF8FI="; + }; + + nativeBuildInputs = [ + cmake + ]; + + buildInputs = lib.optionals stdenv.isLinux [ + # needed for linux's tcp extension + openssl + ]; + + cmakeFlags = lib.optionals (stdenv.isLinux || stdenv.isDarwin) [ + "-DAMQP-CPP_BUILD_SHARED=ON" + ] ++ lib.optionals stdenv.isLinux [ + "-DAMQP-CPP_LINUX_TCP=ON" + ]; +} + diff --git a/nix/overlay.nix b/nix/overlay.nix index ee871589f..a9d106c0f 100644 --- a/nix/overlay.nix +++ b/nix/overlay.nix @@ -1,15 +1,17 @@ # An overlay allows for a package set to be extended with new or modified packages # `final` refers to the package set with all overlays applied. # This allows for added or modified packages to be referenced with # all relevant changes final: # `prev` refers to the previous package set before this current overlay is applied. # This is cheaper for nix to evaluate, thus should be prefered over final when possible. prev: { # add packages meant for just this repository + amqp-cpp = prev.callPackage ./amqp-cpp.nix { }; + devShell = final.callPackage ./dev-shell.nix { }; }