summaryrefslogtreecommitdiffstats
path: root/pkgs
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2021-01-26 23:09:35 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2021-01-26 23:12:49 +0000
commit60dea25dae798db0922e42e15dccc08fc3203499 (patch)
tree73011ffbf8ff9a7d56bd4a2095f7cbf60b59741a /pkgs
parent1913ea8a9762752577c4a92aa89b0ee2326902ef (diff)
crypto++: Fix static build and also do multiple outputs
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/crypto++/default.nix16
1 files changed, 13 insertions, 3 deletions
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index b2232907db7f..0402af92b3b3 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, }:
+{ lib, stdenv, fetchFromGitHub, nasm, which
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !enableStatic
+}:
stdenv.mkDerivation rec {
pname = "crypto++";
@@ -12,6 +15,8 @@ stdenv.mkDerivation rec {
sha256 = "1gwn8yh1mh41hkh6sgnhb9c3ygrdazd7645msl20i0zdvcp7f5w3";
};
+ outputs = [ "out" "dev" ];
+
postPatch = ''
substituteInPlace GNUmakefile \
--replace "AR = libtool" "AR = ar" \
@@ -19,12 +24,17 @@ stdenv.mkDerivation rec {
'';
makeFlags = [ "PREFIX=${placeholder "out"}" ];
- buildFlags = [ "shared" "libcryptopp.pc" ];
+ buildFlags =
+ lib.optional enableStatic "static"
+ ++ lib.optional enableShared "shared"
+ ++ [ "libcryptopp.pc" ];
enableParallelBuilding = true;
doCheck = true;
- preInstall = "rm libcryptopp.a"; # built for checks but we don't install static lib into the nix store
+ # built for checks but we don't install static lib into the nix store
+ preInstall = lib.optionalString (!enableStatic) "rm libcryptopp.a";
+
installTargets = [ "install-lib" ];
installFlags = [ "LDCONF=true" ];
postInstall = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''