about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/capnproto
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/capnproto')
-rw-r--r--nixpkgs/pkgs/development/libraries/capnproto/default.nix16
1 files changed, 12 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/development/libraries/capnproto/default.nix b/nixpkgs/pkgs/development/libraries/capnproto/default.nix
index 3e5a22bf4c86..0eaf6eda07a5 100644
--- a/nixpkgs/pkgs/development/libraries/capnproto/default.nix
+++ b/nixpkgs/pkgs/development/libraries/capnproto/default.nix
@@ -1,14 +1,22 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromGitHub, capnproto, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "capnproto";
   version = "0.9.0";
 
-  src = fetchurl {
-    url = "https://capnproto.org/capnproto-c++-${version}.tar.gz";
-    sha256 = "sha256-soBUp6K/6kK/w5LI0AljDZTXLozoaiOtbxi15yV0Bk8=";
+  # release tarballs are missing some ekam rules
+  src = fetchFromGitHub {
+    owner = "capnproto";
+    repo = "capnproto";
+    rev = "v${version}";
+    sha256 = "038i40apywn8sg95kwld4mg9p9m08izcw5xj7mwkmshycmqw65na";
   };
 
+  nativeBuildInputs = [ cmake ]
+    ++ lib.optional (!(stdenv.hostPlatform.isCompatible stdenv.buildPlatform)) capnproto;
+
+  cmakeFlags = lib.optional (!(stdenv.hostPlatform.isCompatible stdenv.buildPlatform)) "-DEXTERNAL_CAPNP";
+
   meta = with lib; {
     homepage    = "https://capnproto.org/";
     description = "Cap'n Proto cerealization protocol";