nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib, ... }:
2let
3 inherit (lib) options types;
4in
5# https://github.com/ConnorBaker/cuda-redist-find-features/blob/603407bea2fab47f2dfcd88431122a505af95b42/cuda_redist_find_features/manifest/feature/package/package.py
6options.mkOption {
7 description = "Set of outputs that a package can provide";
8 example = {
9 bin = true;
10 dev = true;
11 doc = false;
12 lib = false;
13 sample = false;
14 static = false;
15 };
16 type = types.submodule {
17 options = {
18 bin = options.mkOption {
19 description = "`bin` output requires that we have a non-empty `bin` directory containing at least one file with the executable bit set";
20 type = types.bool;
21 };
22 dev = options.mkOption {
23 description = ''
24 A `dev` output requires that we have at least one of the following non-empty directories:
25
26 - `include`
27 - `lib/pkgconfig`
28 - `share/pkgconfig`
29 - `lib/cmake`
30 - `share/aclocal`
31 '';
32 type = types.bool;
33 };
34 doc = options.mkOption {
35 description = ''
36 A `doc` output requires that we have at least one of the following non-empty directories:
37
38 - `share/info`
39 - `share/doc`
40 - `share/gtk-doc`
41 - `share/devhelp`
42 - `share/man`
43 '';
44 type = types.bool;
45 };
46 lib = options.mkOption {
47 description = "`lib` output requires that we have a non-empty lib directory containing at least one shared library";
48 type = types.bool;
49 };
50 sample = options.mkOption {
51 description = "`sample` output requires that we have a non-empty `samples` directory";
52 type = types.bool;
53 };
54 static = options.mkOption {
55 description = "`static` output requires that we have a non-empty lib directory containing at least one static library";
56 type = types.bool;
57 };
58 };
59 };
60}