summaryrefslogtreecommitdiffstats
path: root/pkgs/top-level/config.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/config.nix')
-rw-r--r--pkgs/top-level/config.nix51
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;
+
+}