Merge pull request #110901 from obsidiansystems/cryptopp-static

crypto++: Fix static build and also do multiple outputs
This commit is contained in:
John Ericson 2021-01-26 21:37:26 -05:00 committed by GitHub
commit 652b2d6dba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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) ''