diff options
Diffstat (limited to 'pkgs/development/compilers/idris2/build-idris.nix')
-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 1df763e4c4fd4..5b7c4a92a5ffc 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}"; |