diff --git a/pkgs/by-name/id/idris2/mkPrelude.nix b/pkgs/by-name/id/idris2/mkPrelude.nix new file mode 100644 index 000000000000..90659c8c4fe6 --- /dev/null +++ b/pkgs/by-name/id/idris2/mkPrelude.nix @@ -0,0 +1,39 @@ +{ + lib, + stdenvNoCC, + idris2-src, + idris2-version, + idris2-unwrapped, +}: +lib.extendMkDerivation { + constructDrv = stdenvNoCC.mkDerivation; + + excludeDrvArgNames = [ + "dependencies" + ]; + + extendDrvArgs = + finalAttrs: + { + name, + dependencies ? [ ], + }: + { + pname = name; + version = idris2-version; + src = idris2-src; + strictDeps = true; + + makeFlags = "IDRIS2=${lib.getExe idris2-unwrapped}"; + + enableParallelBuilding = true; + preBuild = '' + cd libs/${name} + ''; + + env = { + IDRIS2_PREFIX = placeholder "out"; + IDRIS2_PACKAGE_PATH = lib.makeSearchPath "idris2-${idris2-version}" dependencies; + }; + }; +} diff --git a/pkgs/by-name/id/idris2/package.nix b/pkgs/by-name/id/idris2/package.nix index 694160d9d5c1..77adf53b0c34 100644 --- a/pkgs/by-name/id/idris2/package.nix +++ b/pkgs/by-name/id/idris2/package.nix @@ -18,6 +18,8 @@ let rev = "v${self.idris2-version}"; hash = "sha256-VwveX3fZfrxEsytpbOc5Tm6rySpLFhTt5132J6rmrmM="; }; + # Prelude libraries + mkPrelude = callPackage ./mkPrelude.nix { }; # Build helper libidris2_support = callPackage ./libidris2_support.nix { }; idris2-unwrapped = callPackage ./unwrapped.nix { };