1CPack FreeBSD Generator
2-----------------------
3
4.. versionadded:: 3.10
5
6The built in (binary) CPack FreeBSD (pkg) generator (Unix only)
7
8Variables affecting the CPack FreeBSD (pkg) generator
9^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
10
11- .. versionadded:: 3.18
12    :variable:`CPACK_ARCHIVE_THREADS`
13
14Variables specific to CPack FreeBSD (pkg) generator
15^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16
17The CPack FreeBSD generator may be used to create pkg(8) packages -- these may
18be used on FreeBSD, DragonflyBSD, NetBSD, OpenBSD, but also on Linux or OSX,
19depending on the installed package-management tools -- using :module:`CPack`.
20
21The CPack FreeBSD generator is a :module:`CPack` generator and uses the
22``CPACK_XXX`` variables used by :module:`CPack`. It tries to re-use packaging
23information that may already be specified for Debian packages for the
24:cpack_gen:`CPack DEB Generator`. It also tries to re-use RPM packaging
25information when Debian does not specify.
26
27The CPack FreeBSD generator should work on any host with libpkg installed. The
28packages it produces are specific to the host architecture and ABI.
29
30The CPack FreeBSD generator sets package-metadata through
31``CPACK_FREEBSD_XXX`` variables. The CPack FreeBSD generator, unlike the
32CPack Deb generator, does not specially support componentized packages; a
33single package is created from all the software artifacts created through
34CMake.
35
36All of the variables can be set specifically for FreeBSD packaging in
37the CPackConfig file or in CMakeLists.txt, but most of them have defaults
38that use general settings (e.g. CMAKE_PROJECT_NAME) or Debian-specific
39variables when those make sense (e.g. the homepage of an upstream project
40is usually unchanged by the flavor of packaging). When there is no Debian
41information to fall back on, but the RPM packaging has it, fall back to
42the RPM information (e.g. package license).
43
44.. variable:: CPACK_FREEBSD_PACKAGE_NAME
45
46  Sets the package name (in the package manifest, but also affects the
47  output filename).
48
49  * Mandatory: YES
50  * Default:
51
52    - :variable:`CPACK_PACKAGE_NAME` (this is always set by CPack itself,
53      based on CMAKE_PROJECT_NAME).
54
55.. variable:: CPACK_FREEBSD_PACKAGE_COMMENT
56
57  Sets the package comment. This is the short description displayed by
58  pkg(8) in standard "pkg info" output.
59
60  * Mandatory: YES
61  * Default:
62
63    - :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` (this is always set
64      by CPack itself, if nothing else sets it explicitly).
65    - :variable:`PROJECT_DESCRIPTION` (this can be set with the DESCRIPTION
66      parameter for :command:`project`).
67
68.. variable:: CPACK_FREEBSD_PACKAGE_DESCRIPTION
69
70  Sets the package description. This is the long description of the package,
71  given by "pkg info" with a specific package as argument.
72
73  * Mandatory: YES
74  * Default:
75
76    - :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` (this may be set already
77      for Debian packaging, so it is used as a fallback).
78
79.. variable:: CPACK_FREEBSD_PACKAGE_WWW
80
81  The URL of the web site for this package, preferably (when applicable) the
82  site from which the original source can be obtained and any additional
83  upstream documentation or information may be found.
84
85  * Mandatory: YES
86  * Default:
87
88   - :variable:`CMAKE_PROJECT_HOMEPAGE_URL`, or if that is not set,
89     :variable:`CPACK_DEBIAN_PACKAGE_HOMEPAGE` (this may be set already
90     for Debian packaging, so it is used as a fallback).
91
92  .. versionadded:: 3.12
93    The ``CMAKE_PROJECT_HOMEPAGE_URL`` variable.
94
95.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE
96
97  The license, or licenses, which apply to this software package. This must
98  be one or more license-identifiers that pkg recognizes as acceptable license
99  identifiers (e.g. "GPLv2").
100
101  * Mandatory: YES
102  * Default:
103
104    - :variable:`CPACK_RPM_PACKAGE_LICENSE`
105
106.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE_LOGIC
107
108  This variable is only of importance if there is more than one license.
109  The default is "single", which is only applicable to a single license.
110  Other acceptable values are determined by pkg -- those are "dual" or "multi" --
111  meaning choice (OR) or simultaneous (AND) application of the licenses.
112
113  * Mandatory: NO
114  * Default: single
115
116.. variable:: CPACK_FREEBSD_PACKAGE_MAINTAINER
117
118  The FreeBSD maintainer (e.g. [email protected]) of this package.
119
120  * Mandatory: YES
121  * Default: none
122
123.. variable:: CPACK_FREEBSD_PACKAGE_ORIGIN
124
125  The origin (ports label) of this package; for packages built by CPack
126  outside of the ports system this is of less importance. The default
127  puts the package somewhere under misc/, as a stopgap.
128
129  * Mandatory: YES
130  * Default: misc/<package name>
131
132.. variable:: CPACK_FREEBSD_PACKAGE_CATEGORIES
133
134  The ports categories where this package lives (if it were to be built
135  from ports). If none is set a single category is determined based on
136  the package origin.
137
138  * Mandatory: YES
139  * Default: derived from ORIGIN
140
141.. variable:: CPACK_FREEBSD_PACKAGE_DEPS
142
143  A list of package origins that should be added as package dependencies.
144  These are in the form <category>/<packagename>, e.g. x11/libkonq.
145  No version information needs to be provided (this is not included
146  in the manifest).
147
148  * Mandatory: NO
149  * Default: empty
150