diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md index 3025172b5c98..e88015f08e3f 100644 --- a/doc/languages-frameworks/idris.section.md +++ b/doc/languages-frameworks/idris.section.md @@ -124,3 +124,21 @@ in another file (say `default.nix`) to be able to build it with ``` $ nix-build -A yaml ``` + +## Passing options to `idris` commands + +The `build-idris-package` function provides also optional input values to set additional options for the used `idris` commands. + +Specifically, you can set `idrisBuildOptions`, `idrisTestOptions`, `idrisInstallOptions` and `idrisDocOptions` to provide additional options to the `idris` command respectively when building, testing, installing and generating docs for your package. + +For example you could set + +``` +build-idris-package { + idrisBuildOptions = [ "--log" "1" "--verbose" ] + + ... +} +``` + +to require verbose output during `idris` build phase. diff --git a/pkgs/development/idris-modules/build-idris-package.nix b/pkgs/development/idris-modules/build-idris-package.nix index 28bac4e981b0..ac0555636be0 100644 --- a/pkgs/development/idris-modules/build-idris-package.nix +++ b/pkgs/development/idris-modules/build-idris-package.nix @@ -7,6 +7,10 @@ , version , ipkgName ? name , extraBuildInputs ? [] + , idrisBuildOptions ? [] + , idrisTestOptions ? [] + , idrisInstallOptions ? [] + , idrisDocOptions ? [] , ... }@attrs: let @@ -39,14 +43,14 @@ stdenv.mkDerivation ({ buildPhase = '' runHook preBuild - idris --build ${ipkgName}.ipkg + idris --build ${ipkgName}.ipkg ${lib.escapeShellArgs idrisBuildOptions} runHook postBuild ''; checkPhase = '' runHook preCheck if grep -q tests ${ipkgName}.ipkg; then - idris --testpkg ${ipkgName}.ipkg + idris --testpkg ${ipkgName}.ipkg ${lib.escapeShellArgs idrisTestOptions} fi runHook postCheck ''; @@ -54,9 +58,9 @@ stdenv.mkDerivation ({ installPhase = '' runHook preInstall - idris --install ${ipkgName}.ipkg --ibcsubdir $out/libs + idris --install ${ipkgName}.ipkg --ibcsubdir $out/libs ${lib.escapeShellArgs idrisInstallOptions} - IDRIS_DOC_PATH=$out/doc idris --installdoc ${ipkgName}.ipkg || true + IDRIS_DOC_PATH=$out/doc idris --installdoc ${ipkgName}.ipkg ${lib.escapeShellArgs idrisDocOptions} || true # If the ipkg file defines an executable, install that executable=$(grep -Po '^executable = \K.*' ${ipkgName}.ipkg || true)