Merge pull request #65213 from tobim/pkgsStatic/enhance
pkgsStatic: improve usability
This commit is contained in:
commit
c0fe97b12e
2 changed files with 24 additions and 2 deletions
|
@ -62,8 +62,21 @@ rec {
|
|||
];
|
||||
mesonFlags = (args.mesonFlags or []) ++ [ "-Ddefault_library=static" ];
|
||||
});
|
||||
static = true;
|
||||
};
|
||||
|
||||
|
||||
/* Modify a stdenv so that all buildInputs are implicitly propagated to
|
||||
consuming derivations
|
||||
*/
|
||||
propagateBuildInputs = stdenv: stdenv //
|
||||
{ mkDerivation = args: stdenv.mkDerivation (args // {
|
||||
propagatedBuildInputs = (args.propagatedBuildInputs or []) ++ (args.buildInputs or []);
|
||||
buildInputs = [];
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/* Modify a stdenv so that the specified attributes are added to
|
||||
every derivation returned by its mkDerivation function.
|
||||
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
|
||||
self: super: let
|
||||
inherit (super.stdenvAdapters) makeStaticBinaries
|
||||
makeStaticLibraries;
|
||||
makeStaticLibraries
|
||||
propagateBuildInputs;
|
||||
inherit (super.lib) foldl optional flip id composeExtensions;
|
||||
inherit (super) makeSetupHook;
|
||||
|
||||
|
@ -30,7 +31,7 @@ self: super: let
|
|||
});
|
||||
};
|
||||
|
||||
staticAdapters = [ makeStaticLibraries ]
|
||||
staticAdapters = [ makeStaticLibraries propagateBuildInputs ]
|
||||
|
||||
# Apple does not provide a static version of libSystem or crt0.o
|
||||
# So we can’t build static binaries without extensive hacks.
|
||||
|
@ -53,6 +54,14 @@ self: super: let
|
|||
|
||||
in {
|
||||
stdenv = foldl (flip id) super.stdenv staticAdapters;
|
||||
gcc49Stdenv = foldl (flip id) super.gcc49Stdenv staticAdapters;
|
||||
gcc5Stdenv = foldl (flip id) super.gcc5Stdenv staticAdapters;
|
||||
gcc6Stdenv = foldl (flip id) super.gcc6Stdenv staticAdapters;
|
||||
gcc7Stdenv = foldl (flip id) super.gcc7Stdenv staticAdapters;
|
||||
gcc8Stdenv = foldl (flip id) super.gcc8Stdenv staticAdapters;
|
||||
gcc9Stdenv = foldl (flip id) super.gcc9Stdenv staticAdapters;
|
||||
clangStdenv = foldl (flip id) super.clangStdenv staticAdapters;
|
||||
libcxxStdenv = foldl (flip id) super.libcxxStdenv staticAdapters;
|
||||
|
||||
haskell = super.haskell // {
|
||||
packageOverrides = composeExtensions
|
||||
|
|
Loading…
Reference in a new issue