stdenv.mkDerivation: Use chooseDevOutputs

Changed files
+15 -9
lib
pkgs
stdenv
generic
+2
lib/attrsets.nix
···
getLib = getOutput "lib";
getDev = getOutput "dev";
/*** deprecated stuff ***/
···
getLib = getOutput "lib";
getDev = getOutput "dev";
+
/* Pick the outputs of packages to place in buildInputs */
+
chooseDevOutputs = drvs: builtins.map (drv: if drv.outputUnspecified or false then drv.dev or drv else drv) drvs;
/*** deprecated stuff ***/
+13 -9
pkgs/stdenv/generic/default.nix
···
outputs ++
(if separateDebugInfo then assert result.isLinux; [ "debug" ] else []);
-
buildInputs' = buildInputs ++
(if separateDebugInfo then [ ../../build-support/setup-hooks/separate-debug-info.sh ] else []);
in
···
"sandboxProfile" "propagatedSandboxProfile"])
// (let
computedSandboxProfile =
-
lib.concatMap (input: input.__propagatedSandboxProfile or []) (extraBuildInputs ++ buildInputs ++ nativeBuildInputs);
computedPropagatedSandboxProfile =
-
lib.concatMap (input: input.__propagatedSandboxProfile or []) (propagatedBuildInputs ++ propagatedNativeBuildInputs);
computedImpureHostDeps =
-
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (extraBuildInputs ++ buildInputs ++ nativeBuildInputs));
computedPropagatedImpureHostDeps =
-
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (propagatedBuildInputs ++ propagatedNativeBuildInputs));
in
{
builder = attrs.realBuilder or shell;
···
# Inputs built by the cross compiler.
buildInputs = if crossConfig != null then buildInputs' else [];
-
propagatedBuildInputs = if crossConfig != null then propagatedBuildInputs else [];
# Inputs built by the usual native compiler.
-
nativeBuildInputs = nativeBuildInputs
++ lib.optionals (crossConfig == null) buildInputs'
++ lib.optional
(result.isCygwin
|| (crossConfig != null && lib.hasSuffix "mingw32" crossConfig))
../../build-support/setup-hooks/win-dll-link.sh
;
-
propagatedNativeBuildInputs = propagatedNativeBuildInputs ++
-
(if crossConfig == null then propagatedBuildInputs else []);
} // ifDarwin {
# TODO: remove lib.unique once nix has a list canonicalization primitive
__sandboxProfile =
···
outputs ++
(if separateDebugInfo then assert result.isLinux; [ "debug" ] else []);
+
buildInputs' = lib.chooseDevOutputs buildInputs ++
(if separateDebugInfo then [ ../../build-support/setup-hooks/separate-debug-info.sh ] else []);
+
+
nativeBuildInputs' = lib.chooseDevOutputs nativeBuildInputs;
+
propagatedBuildInputs' = lib.chooseDevOutputs propagatedBuildInputs;
+
propagatedNativeBuildInputs' = lib.chooseDevOutputs propagatedNativeBuildInputs;
in
···
"sandboxProfile" "propagatedSandboxProfile"])
// (let
computedSandboxProfile =
+
lib.concatMap (input: input.__propagatedSandboxProfile or []) (extraBuildInputs ++ buildInputs' ++ nativeBuildInputs');
computedPropagatedSandboxProfile =
+
lib.concatMap (input: input.__propagatedSandboxProfile or []) (propagatedBuildInputs' ++ propagatedNativeBuildInputs');
computedImpureHostDeps =
+
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (extraBuildInputs ++ buildInputs' ++ nativeBuildInputs'));
computedPropagatedImpureHostDeps =
+
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (propagatedBuildInputs' ++ propagatedNativeBuildInputs'));
in
{
builder = attrs.realBuilder or shell;
···
# Inputs built by the cross compiler.
buildInputs = if crossConfig != null then buildInputs' else [];
+
propagatedBuildInputs = if crossConfig != null then propagatedBuildInputs' else [];
# Inputs built by the usual native compiler.
+
nativeBuildInputs = nativeBuildInputs'
++ lib.optionals (crossConfig == null) buildInputs'
++ lib.optional
(result.isCygwin
|| (crossConfig != null && lib.hasSuffix "mingw32" crossConfig))
../../build-support/setup-hooks/win-dll-link.sh
;
+
propagatedNativeBuildInputs = propagatedNativeBuildInputs' ++
+
(if crossConfig == null then propagatedBuildInputs' else []);
} // ifDarwin {
# TODO: remove lib.unique once nix has a list canonicalization primitive
__sandboxProfile =