diff options
author | Mathew Polzin <matt.polzin@gmail.com> | 2024-06-23 11:11:55 -0500 |
---|---|---|
committer | Mathew Polzin <matt.polzin@gmail.com> | 2024-06-23 11:22:40 -0500 |
commit | 85c18bcd36a2b9a214af244f0e5def5b5184f76c (patch) | |
tree | f1a623657c6312733f3968786c362ced84988c4e /pkgs/development/compilers/idris2 | |
parent | 2b14afdba35b51a1a9f841d695d2254f5f1eadca (diff) |
idris2Packages.buildIdris: More lenient and ergonomic dependency inputs
Diffstat (limited to 'pkgs/development/compilers/idris2')
-rw-r--r-- | pkgs/development/compilers/idris2/build-idris.nix | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/pkgs/development/compilers/idris2/build-idris.nix b/pkgs/development/compilers/idris2/build-idris.nix index 1df763e4c4fd..5b7c4a92a5ff 100644 --- a/pkgs/development/compilers/idris2/build-idris.nix +++ b/pkgs/development/compilers/idris2/build-idris.nix @@ -18,11 +18,24 @@ , ... }@attrs: let + # loop over idrisLibraries and normalize them by turning any that are + # direct outputs of the buildIdris function into the `.library {}` + # property. + idrisLibraryLibs = map (idrisLib: + if lib.isDerivation idrisLib + then idrisLib + else if builtins.isFunction idrisLib + then idrisLib {} + else if (builtins.isAttrs idrisLib && idrisLib ? "library") + then idrisLib.library {} + else throw "Found an Idris2 library dependency that was not the result of the buildIdris function" + ) idrisLibraries; + propagate = libs: lib.unique (lib.concatMap (nextLib: [nextLib] ++ nextLib.propagatedIdrisLibraries) libs); ipkgFileName = ipkgName + ".ipkg"; idrName = "idris2-${idris2.version}"; libSuffix = "lib/${idrName}"; - propagatedIdrisLibraries = propagate idrisLibraries; + propagatedIdrisLibraries = propagate idrisLibraryLibs; libDirs = (lib.makeSearchPath libSuffix propagatedIdrisLibraries) + ":${idris2}/${idrName}"; |