Files
haskell.nix/modules/flake.nix
Hamish Mackenzie cbf1e918b6 Add ghc 9.2.5 (#1779)
* Add ghc 9.2.5

* More materialization updates

* More materialization updates

* More materialization updates

* Remaining materialization changes

* Fix ghcjs cabal materialization issue
2022-11-15 17:12:14 +13:00

48 lines
1.4 KiB
Nix

{ projectConfig }:
{ lib, config, pkgs, haskellLib, ... }: {
options = {
packages = lib.mkOption {
type = lib.types.unspecified;
default = haskellLib.selectProjectPackages;
};
crossPlatforms = lib.mkOption {
type = lib.types.unspecified;
default = projectConfig.crossPlatforms;
};
variants = lib.mkOption {
type = lib.types.attrsOf lib.types.unspecified;
default = {};
description = ''
This allows flakes to easily include variations of the
project by with different project arguments.
Anything you can pass to `project.addModule` can be used.
For instance to include variants using ghc 9.2.4:
```
flake.variants.ghc925.compiler-nix-name = pkgs.lib.mkForce "ghc925";
```
Then use it with:
```
nix build .#ghc925:hello:exe:hello
```
'';
};
doCoverage = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Specifies if the flake `ciJobs` and `hydraJobs` should include code
coverage reports.
'';
};
coverageProjectModule = lib.mkOption {
type = lib.types.unspecified;
default = {};
description = ''
Project module for use when generating coverage reports.
The project packages will have `packages.X.doCoverage`
turned on by default.
'';
};
};
}