opam: 2.2.0 → 2.3.0 (#359044)
[NixPkgs.git] / lib / tests / modules / declare-mkPackageOption.nix
blobe13e68447e096300adb7c28f288ba227de0bc1eb
1 { lib, ... }: let
2   pkgs.hello = {
3     type = "derivation";
4     pname = "hello";
5   };
6 in {
7   options = {
8     package = lib.mkPackageOption pkgs "hello" { };
10     namedPackage = lib.mkPackageOption pkgs "Hello" {
11       default = [ "hello" ];
12     };
14     namedPackageSingletonDefault = lib.mkPackageOption pkgs "Hello" {
15       default = "hello";
16     };
18     pathPackage = lib.mkPackageOption pkgs [ "hello" ] { };
20     packageWithExample = lib.mkPackageOption pkgs "hello" {
21       example = "pkgs.hello.override { stdenv = pkgs.clangStdenv; }";
22     };
24     packageWithPathExample = lib.mkPackageOption pkgs "hello" {
25       example = [ "hello" ];
26     };
28     packageWithExtraDescription = lib.mkPackageOption pkgs "hello" {
29       extraDescription = "Example extra description.";
30     };
32     undefinedPackage = lib.mkPackageOption pkgs "hello" {
33       default = null;
34     };
36     nullablePackage = lib.mkPackageOption pkgs "hello" {
37       nullable = true;
38       default = null;
39     };
41     nullablePackageWithDefault = lib.mkPackageOption pkgs "hello" {
42       nullable = true;
43     };
45     packageWithPkgsText = lib.mkPackageOption pkgs "hello" {
46       pkgsText = "myPkgs";
47     };
49     packageFromOtherSet = let myPkgs = {
50       hello = pkgs.hello // { pname = "hello-other"; };
51     }; in lib.mkPackageOption myPkgs "hello" { };
52   };