Merge pull request #65213 from tobim/pkgsStatic/enhance
pkgsStatic: improve usability
This commit is contained in:
commit
c0fe97b12e
|
@ -62,8 +62,21 @@ rec {
|
||||||
];
|
];
|
||||||
mesonFlags = (args.mesonFlags or []) ++ [ "-Ddefault_library=static" ];
|
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
|
/* Modify a stdenv so that the specified attributes are added to
|
||||||
every derivation returned by its mkDerivation function.
|
every derivation returned by its mkDerivation function.
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
|
|
||||||
self: super: let
|
self: super: let
|
||||||
inherit (super.stdenvAdapters) makeStaticBinaries
|
inherit (super.stdenvAdapters) makeStaticBinaries
|
||||||
makeStaticLibraries;
|
makeStaticLibraries
|
||||||
|
propagateBuildInputs;
|
||||||
inherit (super.lib) foldl optional flip id composeExtensions;
|
inherit (super.lib) foldl optional flip id composeExtensions;
|
||||||
inherit (super) makeSetupHook;
|
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
|
# Apple does not provide a static version of libSystem or crt0.o
|
||||||
# So we can’t build static binaries without extensive hacks.
|
# So we can’t build static binaries without extensive hacks.
|
||||||
|
@ -53,6 +54,14 @@ self: super: let
|
||||||
|
|
||||||
in {
|
in {
|
||||||
stdenv = foldl (flip id) super.stdenv staticAdapters;
|
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 // {
|
haskell = super.haskell // {
|
||||||
packageOverrides = composeExtensions
|
packageOverrides = composeExtensions
|
||||||
|
|
Loading…
Reference in New Issue