From 60dea25dae798db0922e42e15dccc08fc3203499 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 26 Jan 2021 23:09:35 +0000 Subject: crypto++: Fix static build and also do multiple outputs --- pkgs/development/libraries/crypto++/default.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'pkgs') 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) '' -- cgit v1.2.3