add options for build idris package (#65666)

add options for build idris package
This commit is contained in:
Silvan Mosberger 2019-08-07 13:37:36 +02:00 committed by GitHub
commit dd7de2d096
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 4 deletions

View file

@ -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.

View file

@ -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)