2021-04-13 23:55:31 +02:00
|
|
|
# Builder for depot-internal Emacs packages. Packages built using this
|
|
|
|
# builder are added into the Emacs packages fixpoint under
|
|
|
|
# `emacsPackages.tvlPackages`, which in turn makes it possible to use
|
|
|
|
# them with special Emacs features like native compilation.
|
|
|
|
#
|
|
|
|
# Arguments passed to the builder are the same as
|
|
|
|
# emacsPackages.trivialBuild, except:
|
|
|
|
#
|
|
|
|
# * packageRequires is not used
|
|
|
|
#
|
|
|
|
# * externalRequires takes a selection function for packages from
|
|
|
|
# emacsPackages
|
|
|
|
#
|
|
|
|
# * internalRequires takes other depot packages
|
|
|
|
{ pkgs, ... }:
|
|
|
|
|
|
|
|
buildArgs:
|
|
|
|
|
2022-01-30 17:06:58 +01:00
|
|
|
pkgs.callPackage
|
|
|
|
({ emacsPackages }:
|
2021-04-13 23:55:31 +02:00
|
|
|
|
2022-01-30 17:06:58 +01:00
|
|
|
let
|
|
|
|
# Select external dependencies from the emacsPackages set
|
|
|
|
externalDeps = (buildArgs.externalRequires or (_: [ ])) emacsPackages;
|
2021-04-13 23:55:31 +02:00
|
|
|
|
2022-01-30 17:06:58 +01:00
|
|
|
# Override emacsPackages for depot-internal packages
|
|
|
|
internalDeps = map (p: p.override { inherit emacsPackages; })
|
|
|
|
(buildArgs.internalRequires or [ ]);
|
2021-04-13 23:55:31 +02:00
|
|
|
|
2022-01-30 17:06:58 +01:00
|
|
|
trivialBuildArgs = builtins.removeAttrs buildArgs [
|
|
|
|
"externalRequires"
|
|
|
|
"internalRequires"
|
|
|
|
] // {
|
|
|
|
packageRequires = externalDeps ++ internalDeps;
|
|
|
|
};
|
|
|
|
in
|
|
|
|
emacsPackages.trivialBuild trivialBuildArgs)
|
|
|
|
{ }
|