mirror of
https://github.com/NixOS/nix
synced 2025-06-25 14:51:16 +02:00
packaging: Add overrideAllMesonComponents
(cherry picked from commit f31d86284f
)
This commit is contained in:
parent
540e8cb908
commit
44fb647986
1 changed files with 33 additions and 1 deletions
|
@ -161,11 +161,28 @@ in
|
||||||
|
|
||||||
inherit resolvePath filesetToSource;
|
inherit resolvePath filesetToSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
A user-provided extension function to apply to each component derivation.
|
||||||
|
*/
|
||||||
|
mesonComponentOverrides = finalAttrs: prevAttrs: { };
|
||||||
|
|
||||||
|
/**
|
||||||
|
Apply an extension function (i.e. overlay-shaped) to all component derivations.
|
||||||
|
*/
|
||||||
|
overrideAllMesonComponents =
|
||||||
|
f:
|
||||||
|
scope.overrideScope (
|
||||||
|
finalScope: prevScope: {
|
||||||
|
mesonComponentOverrides = lib.composeExtensions scope.mesonComponentOverrides f;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
mkMesonDerivation = mkPackageBuilder [
|
mkMesonDerivation = mkPackageBuilder [
|
||||||
miscGoodPractice
|
miscGoodPractice
|
||||||
localSourceLayer
|
localSourceLayer
|
||||||
setVersionLayer
|
setVersionLayer
|
||||||
mesonLayer
|
mesonLayer
|
||||||
|
scope.mesonComponentOverrides
|
||||||
];
|
];
|
||||||
mkMesonExecutable = mkPackageBuilder [
|
mkMesonExecutable = mkPackageBuilder [
|
||||||
miscGoodPractice
|
miscGoodPractice
|
||||||
|
@ -174,6 +191,7 @@ in
|
||||||
setVersionLayer
|
setVersionLayer
|
||||||
mesonLayer
|
mesonLayer
|
||||||
mesonBuildLayer
|
mesonBuildLayer
|
||||||
|
scope.mesonComponentOverrides
|
||||||
];
|
];
|
||||||
mkMesonLibrary = mkPackageBuilder [
|
mkMesonLibrary = mkPackageBuilder [
|
||||||
miscGoodPractice
|
miscGoodPractice
|
||||||
|
@ -183,6 +201,7 @@ in
|
||||||
setVersionLayer
|
setVersionLayer
|
||||||
mesonBuildLayer
|
mesonBuildLayer
|
||||||
mesonLibraryLayer
|
mesonLibraryLayer
|
||||||
|
scope.mesonComponentOverrides
|
||||||
];
|
];
|
||||||
|
|
||||||
nix-util = callPackage ../src/libutil/package.nix { };
|
nix-util = callPackage ../src/libutil/package.nix { };
|
||||||
|
@ -224,5 +243,18 @@ in
|
||||||
|
|
||||||
nix-perl-bindings = callPackage ../src/perl/package.nix { };
|
nix-perl-bindings = callPackage ../src/perl/package.nix { };
|
||||||
|
|
||||||
nix-everything = callPackage ../packaging/everything.nix { };
|
nix-everything = callPackage ../packaging/everything.nix { } // {
|
||||||
|
# Note: no `passthru.overrideAllMesonComponents`
|
||||||
|
# This would propagate into `nix.overrideAttrs f`, but then discard
|
||||||
|
# `f` when `.overrideAllMesonComponents` is used.
|
||||||
|
# Both "methods" should be views on the same fixpoint overriding mechanism
|
||||||
|
# for that to work. For now, we intentionally don't support the broken
|
||||||
|
# two-fixpoint solution.
|
||||||
|
/**
|
||||||
|
Apply an extension function (i.e. overlay-shaped) to all component derivations, and return the nix package.
|
||||||
|
*/
|
||||||
|
overrideAllMesonComponents = f: (scope.overrideAllMesonComponents f).nix-everything;
|
||||||
|
|
||||||
|
scope = scope;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue