diff options
Diffstat (limited to 'pkgs/top-level/config.nix')
-rw-r--r-- | pkgs/top-level/config.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix new file mode 100644 index 000000000000..62e4bebe4497 --- /dev/null +++ b/pkgs/top-level/config.nix @@ -0,0 +1,51 @@ +# This file defines the structure of the `config` nixpkgs option. + +{ lib, config, ... }: + +with lib; + +let + + mkMeta = args: mkOption (builtins.removeAttrs args [ "feature" ] // { + type = args.type or (types.uniq types.bool); + default = args.default or false; + description = args.description or '' + Whether to ${args.feature} while evaluating nixpkgs. + '' + '' + Changing the default will not cause any rebuilds. + ''; + }); + + mkMassRebuild = args: mkOption (builtins.removeAttrs args [ "feature" ] // { + type = args.type or (types.uniq types.bool); + default = args.default or false; + description = (args.description or '' + Whether to ${args.feature} while building nixpkgs packages. + '') + '' + Changing the default will cause a mass rebuild. + ''; + }); + + options = { + + /* Internal stuff */ + + warnings = mkOption { + type = types.listOf types.str; + default = []; + internal = true; + }; + + /* Config options */ + + doCheckByDefault = mkMassRebuild { + feature = "run <literal>checkPhase</literal> by default"; + }; + + }; + +in { + + inherit options; + +} |