1CPACK-GENERATORS(7)                  CMake                 CPACK-GENERATORS(7)
2
3
4

NAME

6       cpack-generators - CPack Generator Reference
7

GENERATORS

9   CPack Archive Generator
10       CPack generator for packaging files into an archive, which can have any
11       of the following formats:
12
13          · 7Z - 7zip - (.7z)
14
15          · TBZ2 (.tar.bz2)
16
17          · TGZ (.tar.gz)
18
19          · TXZ (.tar.xz)
20
21          · TZ (.tar.Z)
22
23          · TZST (.tar.zst)
24
25          · ZIP (.zip)
26
27       When this generator is called from CPackSourceConfig.cmake (or  through
28       the package_source target), then the generated archive will contain all
29       files  in  the   project   directory,   except   those   specified   in
30       CPACK_SOURCE_IGNORE_FILES.   The  following is one example of packaging
31       all source files of a project:
32
33          set(CPACK_SOURCE_GENERATOR "TGZ")
34          set(CPACK_SOURCE_IGNORE_FILES
35            \\.git/
36            build/
37            ".*~$"
38          )
39          set(CPACK_VERBATIM_VARIABLES YES)
40          include(CPack)
41
42       When this generator is called from CPackConfig.cmake  (or  through  the
43       package target), then the generated archive will contain all files that
44       have been installed via CMake’s install() command (and  the  deprecated
45       commands install_files(), install_programs(), and install_targets()).
46
47   Variables specific to CPack Archive generator
48       CPACK_ARCHIVE_FILE_NAME
49
50       CPACK_ARCHIVE_<component>_FILE_NAME
51              Package file name without extension. The extension is determined
52              from the archive  format  (see  list  above)  and  automatically
53              appended   to  the  file  name.   The  default  is  <CPACK_PACK‐
54              AGE_FILE_NAME>[-<component>], with spaces replaced by ‘-‘.
55
56       CPACK_ARCHIVE_COMPONENT_INSTALL
57              Enable component packaging. If enabled (ON),  then  the  archive
58              generator  creates  multiple packages. The default is OFF, which
59              means that a single package containing files of  all  components
60              is generated.
61
62   Variables used by CPack Archive generator
63       These  variables are used by the Archive generator, but are also avail‐
64       able to CPack generators which are essentially archives at their  core.
65       These include:
66
67          · CPack Cygwin Generator
68
69          · CPack FreeBSD Generator
70
71       CPACK_ARCHIVE_THREADS
72              The number of threads to use when performing the compression. If
73              set to 0, the number of available cores on the machine  will  be
74              used  instead.   The  default is 1 which limits compression to a
75              single thread. Note  that  not  all  compression  modes  support
76              threading  in  all environments. Currently, only the XZ compres‐
77              sion may support it.
78
79       NOTE:
80          Official CMake binaries available on cmake.org ship with  a  liblzma
81          that does not support parallel compression.
82
83   CPack Bundle Generator
84       CPack Bundle generator (macOS) specific options
85
86   Variables specific to CPack Bundle generator
87       Installers  built on macOS using the Bundle generator use the aforemen‐
88       tioned DragNDrop (CPACK_DMG_xxx) variables,  plus  the  following  Bun‐
89       dle-specific parameters (CPACK_BUNDLE_xxx).
90
91       CPACK_BUNDLE_NAME
92              The  name  of  the  generated  bundle. This appears in the macOS
93              Finder as the bundle name. Required.
94
95       CPACK_BUNDLE_PLIST
96              Path to an macOS Property List (.plist) file that will  be  used
97              for  the generated bundle. This assumes that the caller has gen‐
98              erated or specified their own Info.plist file. Required.
99
100       CPACK_BUNDLE_ICON
101              Path to an macOS icon file that will be used as the icon for the
102              generated  bundle.  This  is  the icon that appears in the macOS
103              Finder for the bundle, and in the macOS dock when the bundle  is
104              opened. Required.
105
106       CPACK_BUNDLE_STARTUP_COMMAND
107              Path  to  a  startup  script. This is a path to an executable or
108              script that will be run whenever an end-user  double-clicks  the
109              generated bundle in the macOS Finder. Optional.
110
111       CPACK_BUNDLE_APPLE_CERT_APP
112              The name of your Apple supplied code signing certificate for the
113              application.  The name  usually  takes  the  form  Developer  ID
114              Application:  [Name]  or  3rd  Party  Mac Developer Application:
115              [Name]. If this variable is not set the application will not  be
116              signed.
117
118       CPACK_BUNDLE_APPLE_ENTITLEMENTS
119              The  name  of the Property List (.plist) file that contains your
120              Apple entitlements for sandboxing your application. This file is
121              required for submission to the macOS App Store.
122
123       CPACK_BUNDLE_APPLE_CODESIGN_FILES
124              A  list  of  additional files that you wish to be signed. You do
125              not need to list the main application folder, or the  main  exe‐
126              cutable.  You  should  list  any frameworks and plugins that are
127              included in your app bundle.
128
129       CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER
130              Additional parameter that  will  passed  to  codesign.   Default
131              value: --deep -f
132
133       CPACK_COMMAND_CODESIGN
134              Path  to  the codesign(1) command used to sign applications with
135              an Apple cert. This variable can be used to override  the  auto‐
136              matically  detected  command  (or  specify  its  location if the
137              auto-detection fails to find it).
138
139   CPack Cygwin Generator
140       Cygwin CPack generator (Cygwin).
141
142   Variables affecting the CPack Cygwin generator
143          · CPACK_ARCHIVE_THREADS
144
145   Variables specific to CPack Cygwin generator
146       The following variable is specific to installers build  on  and/or  for
147       Cygwin:
148
149       CPACK_CYGWIN_PATCH_NUMBER
150              The  Cygwin  patch  number.  FIXME: This documentation is incom‐
151              plete.
152
153       CPACK_CYGWIN_PATCH_FILE
154              The Cygwin patch file.  FIXME: This documentation is incomplete.
155
156       CPACK_CYGWIN_BUILD_SCRIPT
157              The Cygwin build script.  FIXME: This  documentation  is  incom‐
158              plete.
159
160   CPack DEB Generator
161       The built in (binary) CPack DEB generator (Unix only)
162
163   Variables specific to CPack Debian (DEB) generator
164       The  CPack DEB generator may be used to create DEB package using CPack.
165       The CPack DEB generator is a CPack generator thus it uses the CPACK_XXX
166       variables used by CPack.
167
168       The  CPack DEB generator should work on any Linux host but it will pro‐
169       duce better deb package when Debian specific tools dpkg-xxx are  usable
170       on the build system.
171
172       The  CPack  DEB generator has specific features which are controlled by
173       the specifics CPACK_DEBIAN_XXX variables.
174
175       CPACK_DEBIAN_<COMPONENT>_XXXX variables may be used in  order  to  have
176       component specific values.  Note however that <COMPONENT> refers to the
177       grouping name written in upper case. It may be either a component  name
178       or a component GROUP name.
179
180       Here are some CPack DEB generator wiki resources that are here for his‐
181       toric reasons and are no longer maintained but may still prove useful:
182
183          · https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
184
185          · https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#deb-unix-only
186
187       List of CPack DEB generator specific variables:
188
189       CPACK_DEB_COMPONENT_INSTALL
190              Enable component packaging for CPackDEB
191
192              · Mandatory : NO
193
194              · Default   : OFF
195
196              If enabled (ON) multiple packages are generated.  By  default  a
197              single package containing files of all components is generated.
198
199       CPACK_DEBIAN_PACKAGE_NAME
200
201       CPACK_DEBIAN_<COMPONENT>_PACKAGE_NAME
202              Set Package control field (variable is automatically transformed
203              to lower case).
204
205              · Mandatory : YES
206
207              · Default   :
208
209                · CPACK_PACKAGE_NAME for non-component based installations
210
211                · CPACK_DEBIAN_PACKAGE_NAME  suffixed  with  -<COMPONENT>  for
212                  component-based installations.
213
214              See
215              https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source
216
217       CPACK_DEBIAN_FILE_NAME
218
219       CPACK_DEBIAN_<COMPONENT>_FILE_NAME
220              Package file name.
221
222              · Mandatory : YES
223
224              · Default   : <CPACK_PACKAGE_FILE_NAME>[-<component>].deb
225
226              This  may be set to DEB-DEFAULT to allow the CPack DEB generator
227              to generate package file name by itself in deb format:
228
229                 <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
230
231              Alternatively provided package file name must  end  with  either
232              .deb or .ipk suffix.
233
234              NOTE:
235                 Preferred  setting  of  this  variable is DEB-DEFAULT but for
236                 backward compatibility with the CPack DEB generator in  CMake
237                 prior to version 3.6 this feature is disabled by default.
238
239              NOTE:
240                 By  using  non  default  filenames duplicate names may occur.
241                 Duplicate files get overwritten and it is up to the  packager
242                 to  set  the  variables  in  a  manner that will prevent such
243                 errors.
244
245       CPACK_DEBIAN_PACKAGE_EPOCH
246              The Debian package epoch
247
248              · Mandatory : No
249
250              · Default   : -
251
252              Optional number that should be incremented  when  changing  ver‐
253              sioning  schemas  or  fixing  mistakes in the version numbers of
254              older packages.
255
256       CPACK_DEBIAN_PACKAGE_VERSION
257              The Debian package version
258
259              · Mandatory : YES
260
261              · Default   : CPACK_PACKAGE_VERSION
262
263              This variable may contain only alphanumerics (A-Za-z0-9) and the
264              characters  .  + - ~ (full stop, plus, hyphen, tilde) and should
265              start with a digit. If CPACK_DEBIAN_PACKAGE_RELEASE is  not  set
266              then hyphens are not allowed.
267
268              NOTE:
269                 For  backward compatibility with CMake 3.9 and lower a failed
270                 test of this variable’s content is not a hard error when both
271                 CPACK_DEBIAN_PACKAGE_RELEASE  and  CPACK_DEBIAN_PACKAGE_EPOCH
272                 variables are not set. An author warning is reported instead.
273
274       CPACK_DEBIAN_PACKAGE_RELEASE
275              The Debian package release - Debian revision number.
276
277              · Mandatory : No
278
279              · Default   : -
280
281              This is the numbering of the DEB package itself, i.e.  the  ver‐
282              sion  of  the  packaging and not the version of the content (see
283              CPACK_DEBIAN_PACKAGE_VERSION). One may change the default  value
284              if  the previous packaging was buggy and/or you want to put here
285              a fancy Linux distro specific numbering.
286
287       CPACK_DEBIAN_PACKAGE_ARCHITECTURE
288
289       CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE
290              The Debian package architecture
291
292              · Mandatory : YES
293
294              · Default   : Output of dpkg --print-architecture  (or  i386  if
295                dpkg is not found)
296
297       CPACK_DEBIAN_PACKAGE_DEPENDS
298
299       CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS
300              Sets the Debian dependencies of this package.
301
302              · Mandatory : NO
303
304              · Default   :
305
306                · An empty string for non-component based installations
307
308                · CPACK_DEBIAN_PACKAGE_DEPENDS  for  component-based installa‐
309                  tions.
310
311              NOTE:
312                 If  CPACK_DEBIAN_PACKAGE_SHLIBDEPS   or   more   specifically
313                 CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS  is  set  for this
314                 component, the discovered dependencies will  be  appended  to
315                 CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS      instead      of
316                 CPACK_DEBIAN_PACKAGE_DEPENDS.                              If
317                 CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS  is an empty string,
318                 only the automatically discovered dependencies  will  be  set
319                 for this component.
320
321              Example:
322
323                 set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libc6 (< 2.4)")
324
325       CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS
326              Sets  inter  component  dependencies if listed with CPACK_COMPO‐
327              NENT_<compName>_DEPENDS variables.
328
329              · Mandatory : NO
330
331              · Default   : -
332
333       CPACK_DEBIAN_PACKAGE_MAINTAINER
334              The Debian package maintainer
335
336              · Mandatory : YES
337
338              · Default   : CPACK_PACKAGE_CONTACT
339
340       CPACK_DEBIAN_PACKAGE_DESCRIPTION
341
342       CPACK_DEBIAN_<COMPONENT>_DESCRIPTION
343              The Debian package description
344
345              · Mandatory : YES
346
347              · Default   :
348
349                · CPACK_DEBIAN_<COMPONENT>_DESCRIPTION  (component  based  in‐
350                  stallers  only)  if set, or CPACK_DEBIAN_PACKAGE_DESCRIPTION
351                  if set, or
352
353                · CPACK_COMPONENT_<compName>_DESCRIPTION (component based  in‐
354                  stallers  only) if set, or CPACK_PACKAGE_DESCRIPTION if set,
355                  or
356
357                · content of  the  file  specified  in  CPACK_PACKAGE_DESCRIP‐
358                  TION_FILE if set
359
360              If  after  that  description  is not set, CPACK_PACKAGE_DESCRIP‐
361              TION_SUMMARY going to be used  if  set.  Otherwise,  CPACK_PACK‐
362              AGE_DESCRIPTION_SUMMARY  will  be  added  as  the  first line of
363              description as defined in Debian Policy Manual.
364
365       CPACK_DEBIAN_PACKAGE_SECTION
366
367       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION
368              Set Section control field e.g. admin, devel, doc, …
369
370              · Mandatory : YES
371
372              · Default   : “devel”
373
374              See
375              https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections
376
377       CPACK_DEBIAN_ARCHIVE_TYPE
378              The archive format used for creating the Debian package.
379
380              · Mandatory : YES
381
382              · Default   : “gnutar”
383
384              Possible value is:
385
386              · gnutar
387
388              NOTE:
389                 This variable previously defaulted to  the  paxr  value,  but
390                 dpkg  has never supported that tar format. For backwards com‐
391                 patibility the paxr value will be mapped to gnutar and a dep‐
392                 recation message will be emitted.
393
394       CPACK_DEBIAN_COMPRESSION_TYPE
395              The compression used for creating the Debian package.
396
397              · Mandatory : YES
398
399              · Default   : “gzip”
400
401              Possible values are:
402
403              · lzma
404
405              · xz
406
407              · bzip2
408
409              · gzip
410
411       CPACK_DEBIAN_PACKAGE_PRIORITY
412
413       CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY
414              Set  Priority  control field e.g. required, important, standard,
415              optional, extra
416
417              · Mandatory : YES
418
419              · Default   : “optional”
420
421              See
422              https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities
423
424       CPACK_DEBIAN_PACKAGE_HOMEPAGE
425              The URL of the web  site  for  this  package,  preferably  (when
426              applicable)  the  site  from  which  the  original source can be
427              obtained and any additional upstream documentation  or  informa‐
428              tion may be found.
429
430              · Mandatory : NO
431
432              · Default   : CMAKE_PROJECT_HOMEPAGE_URL
433
434              NOTE:
435                 The  content  of  this field is a simple URL without any sur‐
436                 rounding characters such as <>.
437
438       CPACK_DEBIAN_PACKAGE_SHLIBDEPS
439
440       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS
441              May be set to ON in order to use dpkg-shlibdeps to generate bet‐
442              ter package dependency list.
443
444              · Mandatory : NO
445
446              · Default   :
447
448                · CPACK_DEBIAN_PACKAGE_SHLIBDEPS if set or
449
450                · OFF
451
452              NOTE:
453                 You  may need set CMAKE_INSTALL_RPATH to an appropriate value
454                 if you use this feature, because if you don’t  dpkg-shlibdeps
455                 may    fail    to   find   your   own   shared   libs.    See
456                 https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
457
458       CPACK_DEBIAN_PACKAGE_DEBUG
459              May  be set when invoking cpack in order to trace debug informa‐
460              tion during the CPack DEB generator run.
461
462              · Mandatory : NO
463
464              · Default   : -
465
466       CPACK_DEBIAN_PACKAGE_PREDEPENDS
467
468       CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS
469              Sets the Pre-Depends field of the Debian package.  Like Depends,
470              except  that it also forces dpkg to complete installation of the
471              packages named before even  starting  the  installation  of  the
472              package which declares the pre-dependency.
473
474              · Mandatory : NO
475
476              · Default   :
477
478                · An empty string for non-component based installations
479
480                · CPACK_DEBIAN_PACKAGE_PREDEPENDS  for component-based instal‐
481                  lations.
482
483              See
484              http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
485
486       CPACK_DEBIAN_PACKAGE_ENHANCES
487
488       CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES
489              Sets the Enhances field  of  the  Debian  package.   Similar  to
490              Suggests  but  works  in the opposite direction: declares that a
491              package can enhance the functionality of another package.
492
493              · Mandatory : NO
494
495              · Default   :
496
497                · An empty string for non-component based installations
498
499                · CPACK_DEBIAN_PACKAGE_ENHANCES for component-based  installa‐
500                  tions.
501
502              See
503              http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
504
505       CPACK_DEBIAN_PACKAGE_BREAKS
506
507       CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS
508              Sets  the  Breaks  field  of  the Debian package.  When a binary
509              package (P) declares that it breaks  other  packages  (B),  dpkg
510              will not allow the package (P) which declares Breaks be unpacked
511              unless the packages that will be  broken  (B)  are  deconfigured
512              first.  As long as the package (P) is configured, the previously
513              deconfigured packages (B) cannot be reconfigured again.
514
515              · Mandatory : NO
516
517              · Default   :
518
519                · An empty string for non-component based installations
520
521                · CPACK_DEBIAN_PACKAGE_BREAKS  for  component-based  installa‐
522                  tions.
523
524              See
525              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks
526
527       CPACK_DEBIAN_PACKAGE_CONFLICTS
528
529       CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS
530              Sets the Conflicts field of the Debian package.  When one binary
531              package declares a  conflict  with  another  using  a  Conflicts
532              field,  dpkg will not allow them to be unpacked on the system at
533              the same time.
534
535              · Mandatory : NO
536
537              · Default   :
538
539                · An empty string for non-component based installations
540
541                · CPACK_DEBIAN_PACKAGE_CONFLICTS for component-based installa‐
542                  tions.
543
544              See
545              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
546
547              NOTE:
548                 This  is  a  stronger restriction than Breaks, which prevents
549                 the broken package from being configured while  the  breaking
550                 package  is  in the “Unpacked” state but allows both packages
551                 to be unpacked at the same time.
552
553       CPACK_DEBIAN_PACKAGE_PROVIDES
554
555       CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES
556              Sets the Provides field of the Debian package.  A virtual  pack‐
557              age  is  one  which  appears  in  the  Provides control field of
558              another package.
559
560              · Mandatory : NO
561
562              · Default   :
563
564                · An empty string for non-component based installations
565
566                · CPACK_DEBIAN_PACKAGE_PROVIDES for component-based  installa‐
567                  tions.
568
569              See
570              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual
571
572       CPACK_DEBIAN_PACKAGE_REPLACES
573
574       CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES
575              Sets  the  Replaces  field  of the Debian package.  Packages can
576              declare in their control file that they should  overwrite  files
577              in certain other packages, or completely replace other packages.
578
579              · Mandatory : NO
580
581              · Default   :
582
583                · An empty string for non-component based installations
584
585                · CPACK_DEBIAN_PACKAGE_REPLACES  for component-based installa‐
586                  tions.
587
588              See
589              http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
590
591       CPACK_DEBIAN_PACKAGE_RECOMMENDS
592
593       CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS
594              Sets the Recommends field of the Debian package.   Allows  pack‐
595              ages  to declare a strong, but not absolute, dependency on other
596              packages.
597
598              · Mandatory : NO
599
600              · Default   :
601
602                · An empty string for non-component based installations
603
604                · CPACK_DEBIAN_PACKAGE_RECOMMENDS for component-based  instal‐
605                  lations.
606
607              See
608              http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
609
610       CPACK_DEBIAN_PACKAGE_SUGGESTS
611
612       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS
613              Sets  the Suggests field of the Debian package.  Allows packages
614              to declare a suggested package install grouping.
615
616              · Mandatory : NO
617
618              · Default   :
619
620                · An empty string for non-component based installations
621
622                · CPACK_DEBIAN_PACKAGE_SUGGESTS for component-based  installa‐
623                  tions.
624
625              See
626              http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
627
628       CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS
629
630              · Mandatory : NO
631
632              · Default   : OFF
633
634              Allows  to  generate shlibs control file automatically. Compati‐
635              bility is defined by CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY
636              variable value.
637
638              NOTE:
639                 Libraries  are only considered if they have both library name
640                 and version set. This can be done by setting SOVERSION  prop‐
641                 erty with set_target_properties() command.
642
643       CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY
644              Compatibility policy for auto-generated shlibs control file.
645
646              · Mandatory : NO
647
648              · Default   : “=”
649
650              Defines  compatibility  policy for auto-generated shlibs control
651              file.  Possible values: “=”, “>=”
652
653              See
654              https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps
655
656       CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
657
658       CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_EXTRA
659              This variable allow advanced user to add custom  script  to  the
660              control.tar.gz.   Typical  usage  is  for  conffiles,  postinst,
661              postrm, prerm.
662
663              · Mandatory : NO
664
665              · Default   : -
666
667              Usage:
668
669                 set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
670                     "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
671
672              NOTE:
673                 The original permissions of the files will  be  used  in  the
674                 final        package        unless        the        variable
675                 CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION  is  set.   In
676                 particular,  the  scripts  should  have the proper executable
677                 flag prior to the generation of the package.
678
679       CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
680
681       CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_STRICT_PERMISSION
682              This variable indicates if the Debian policy  on  control  files
683              should be strictly followed.
684
685              · Mandatory : NO
686
687              · Default   : FALSE
688
689              Usage:
690
691                 set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION TRUE)
692
693              NOTE:
694                 This overrides the permissions on the original files, follow‐
695                 ing     the     rules     set      by      Debian      policy
696                 https://www.debian.org/doc/debian-policy/ch-files.html#s-permissions-owners
697
698       CPACK_DEBIAN_PACKAGE_SOURCE
699
700       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SOURCE
701              Sets the Source field of the binary Debian  package.   When  the
702              binary  package  name is not the same as the source package name
703              (in particular when several  components/binaries  are  generated
704              from  one source) the source from which the binary has been gen‐
705              erated should be indicated with the field Source.
706
707              · Mandatory : NO
708
709              · Default   :
710
711                · An empty string for non-component based installations
712
713                · CPACK_DEBIAN_PACKAGE_SOURCE  for  component-based  installa‐
714                  tions.
715
716              See
717              https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source
718
719              NOTE:
720                 This  value  is  not  interpreted.  It is possible to pass an
721                 optional revision number of the referenced source package  as
722                 well.
723
724   Packaging of debug information
725       Dbgsym packages contain debug symbols for debugging packaged binaries.
726
727       Dbgsym packaging has its own set of variables:
728
729       CPACK_DEBIAN_DEBUGINFO_PACKAGE
730
731       CPACK_DEBIAN_<component>_DEBUGINFO_PACKAGE
732              Enable generation of dbgsym .ddeb package(s).
733
734              · Mandatory : NO
735
736              · Default   : OFF
737
738       NOTE:
739          Binaries  must  contain debug symbols before packaging so use either
740          Debug or RelWithDebInfo for CMAKE_BUILD_TYPE variable value.
741
742   Building Debian packages on Windows
743       To communicate UNIX file permissions from  the  install  stage  to  the
744       CPack DEB generator the “cmake_mode_t” NTFS alternate data stream (ADT)
745       is used.
746
747       When a filesystem without ADT support is  used  only  owner  read/write
748       permissions can be preserved.
749
750   Reproducible packages
751       The  environment  variable SOURCE_DATE_EPOCH may be set to a UNIX time‐
752       stamp, defined as the number of seconds, excluding leap seconds,  since
753       01 Jan 1970 00:00:00 UTC.  If set, the CPack DEB generator will use its
754       value for timestamps in the package.
755
756   CPack DragNDrop Generator
757       The DragNDrop CPack generator (macOS) creates a DMG image.
758
759   Variables specific to CPack DragNDrop generator
760       The following variables are specific to the DragNDrop installers  built
761       on macOS:
762
763       CPACK_DMG_VOLUME_NAME
764              The  volume  name  of  the  generated  disk  image.  Defaults to
765              CPACK_PACKAGE_FILE_NAME.
766
767       CPACK_DMG_FORMAT
768              The disk image format. Common values are UDRO (UDIF  read-only),
769              UDZO  (UDIF  zlib-compressed)  or  UDBZ (UDIF bzip2-compressed).
770              Refer to hdiutil(1) for more information on other available for‐
771              mats. Defaults to UDZO.
772
773       CPACK_DMG_DS_STORE
774              Path to a custom .DS_Store file. This .DS_Store file can be used
775              to specify the Finder window position/geometry and layout  (such
776              as  hidden toolbars, placement of the icons etc.). This file has
777              to be generated by the Finder (either manually or through Apple‐
778              Script)  using a normal folder from which the .DS_Store file can
779              then be extracted.
780
781       CPACK_DMG_DS_STORE_SETUP_SCRIPT
782              Path to a custom AppleScript file.  This AppleScript is used  to
783              generate  a  .DS_Store  file  which  specifies the Finder window
784              position/geometry and layout (such as hidden toolbars, placement
785              of the icons etc.).  By specifying a custom AppleScript there is
786              no need to use CPACK_DMG_DS_STORE, as the .DS_Store that is gen‐
787              erated by the AppleScript will be packaged.
788
789       CPACK_DMG_BACKGROUND_IMAGE
790              Path  to  an image file to be used as the background.  This file
791              will be copied to .background/background.<ext>, where  <ext>  is
792              the  original  image  file  extension.   The background image is
793              installed into the image before  CPACK_DMG_DS_STORE_SETUP_SCRIPT
794              is  executed  or CPACK_DMG_DS_STORE is installed.  By default no
795              background image is set.
796
797       CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK
798              Default behaviour is to include a symlink  to  /Applications  in
799              the DMG.  Set this option to ON to avoid adding the symlink.
800
801       CPACK_DMG_SLA_DIR
802              Directory  where  license and menu files for different languages
803              are stored.  Setting this causes  CPack  to  look  for  a  <lan‐
804              guage>.menu.txt     and    <language>.license.txt    or    <lan‐
805              guage>.license.rtf  file   for   every   language   defined   in
806              CPACK_DMG_SLA_LANGUAGES.     If    both    this   variable   and
807              CPACK_RESOURCE_FILE_LICENSE are set, CPack will  only  look  for
808              the  menu files and use the same license file for all languages.
809              If both <language>.license.txt and <language>.license.rtf exist,
810              the .txt file will be used.
811
812       CPACK_DMG_SLA_LANGUAGES
813              Languages  for which a license agreement is provided when mount‐
814              ing the generated DMG. A menu file consists of 9 lines of  text.
815              The first line is is the name of the language itself, uppercase,
816              in English (e.g. German).  The other lines are  translations  of
817              the following strings:
818
819              · Agree
820
821              · Disagree
822
823              · Print
824
825              · Save…
826
827              · You agree to the terms of the License Agreement when you click
828                the “Agree” button.
829
830              · Software License Agreement
831
832              · This text cannot be saved. The disk may be full or locked,  or
833                the file may be locked.
834
835              · Unable to print. Make sure you have selected a printer.
836
837              For  every  language  in this list, CPack will try to find files
838              <language>.menu.txt and <language>.license.txt in the  directory
839              specified by the CPACK_DMG_SLA_DIR variable.
840
841       CPACK_DMG_<component>_FILE_NAME
842              File  name when packaging <component> as its own DMG (CPACK_COM‐
843              PONENTS_GROUPING set to IGNORE).
844
845              · Default: CPACK_PACKAGE_FILE_NAME-<component>
846
847       CPACK_COMMAND_HDIUTIL
848              Path to the hdiutil(1) command used to  operate  on  disk  image
849              files  on macOS. This variable can be used to override the auto‐
850              matically detected command  (or  specify  its  location  if  the
851              auto-detection fails to find it).
852
853       CPACK_COMMAND_SETFILE
854              Path  to  the SetFile(1) command used to set extended attributes
855              on files and directories on macOS. This variable can be used  to
856              override  the  automatically  detected  command  (or specify its
857              location if the auto-detection fails to find it).
858
859       CPACK_COMMAND_REZ
860              Path to the Rez(1) command used to compile resources  on  macOS.
861              This variable can be used to override the automatically detected
862              command (or specify its location if the auto-detection fails  to
863              find it).
864
865   CPack External Generator
866       CPack  provides  many  generators  to  create packages for a variety of
867       platforms and packaging systems. The intention is for CMake/CPack to be
868       a  complete  end-to-end  solution for building and packaging a software
869       project. However, it may not always be possible to use  CPack  for  the
870       entire  packaging process, due to either technical limitations or poli‐
871       cies that require the use of certain tools. For this reason, CPack pro‐
872       vides  the  “External” generator, which allows external packaging soft‐
873       ware to take advantage of some of the functionality provided by  CPack,
874       such as component installation and the dependency graph.
875
876   Integration with External Packaging Tools
877       The  CPack  External  generator  generates  a .json file containing the
878       CPack internal metadata, which gives external software  information  on
879       how  to  package  the  software. External packaging software may itself
880       invoke CPack, consume the generated metadata, install and package files
881       as required.
882
883       Alternatively  CPack  can invoke an external packaging software through
884       an  optional  custom  CMake  script  in   CPACK_EXTERNAL_PACKAGE_SCRIPT
885       instead.
886
887       Staging  of  installation files may also optionally be taken care of by
888       the generator when enabled  through  the  CPACK_EXTERNAL_ENABLE_STAGING
889       variable.
890
891   JSON Format
892       The  JSON  metadata file contains a list of CPack components and compo‐
893       nent groups, the various options passed  to  cpack_add_component()  and
894       cpack_add_component_group(),  the  dependencies  between the components
895       and component groups, and various other options passed to CPack.
896
897       The JSON’s root object will always provide two fields: formatVersionMa‐
898       jor and formatVersionMinor, which are always integers that describe the
899       output format of the generator.  Backwards-compatible  changes  to  the
900       output  format  (for  example,  adding  a  new  field that didn’t exist
901       before) cause the minor version to be incremented, and backwards-incom‐
902       patible changes (for example, deleting a field or changing its meaning)
903       cause the major version to be incremented and the minor  version  reset
904       to  0. The format version is always of the format major.minor. In other
905       words, it always has exactly two parts, separated by a period.
906
907       You can request one or more specific versions of the output  format  as
908       described below with CPACK_EXTERNAL_REQUESTED_VERSIONS. The output for‐
909       mat will have a major version that exactly matches the requested  major
910       version,  and  a  minor  version  that  is greater than or equal to the
911       requested  minor   version.   If   no   version   is   requested   with
912       CPACK_EXTERNAL_REQUESTED_VERSIONS,  the  latest  known major version is
913       used by default. Currently, the only supported format is 1.0, which  is
914       described below.
915
916   Version 1.0
917       In  addition to the standard format fields, format version 1.0 provides
918       the following fields in the root:
919
920       components
921              The components field is an object with component  names  as  the
922              keys  and  objects  describing the components as the values. The
923              component objects have the following fields:
924
925              name   The name of the component. This is always the same as the
926                     key in the components object.
927
928              displayName
929                     The   value   of   the   DISPLAY_NAME   field  passed  to
930                     cpack_add_component().
931
932              description
933                     The  value   of   the   DESCRIPTION   field   passed   to
934                     cpack_add_component().
935
936              isHidden
937                     True if HIDDEN was passed to cpack_add_component(), false
938                     if it was not.
939
940              isRequired
941                     True if REQUIRED  was  passed  to  cpack_add_component(),
942                     false if it was not.
943
944              isDisabledByDefault
945                     True  if  DISABLED  was  passed to cpack_add_component(),
946                     false if it was not.
947
948              group  Only present if  GROUP  was  passed  to  cpack_add_compo‐
949                     nent().  If  so,  this field is a string value containing
950                     the component’s group.
951
952              dependencies
953                     An array of components the  component  depends  on.  This
954                     contains  the  values  in  the DEPENDS argument passed to
955                     cpack_add_component(). If no DEPENDS argument was passed,
956                     this is an empty list.
957
958              installationTypes
959                     An  array of installation types the component is part of.
960                     This contains the values in  the  INSTALL_TYPES  argument
961                     passed  to  cpack_add_component().  If  no  INSTALL_TYPES
962                     argument was passed, this is an empty list.
963
964              isDownloaded
965                     True if DOWNLOADED was passed  to  cpack_add_component(),
966                     false if it was not.
967
968              archiveFile
969                     The name of the archive file passed with the ARCHIVE_FILE
970                     argument to  cpack_add_component().  If  no  ARCHIVE_FILE
971                     argument was passed, this is an empty string.
972
973       componentGroups
974              The  componentGroups  field  is  an  object with component group
975              names as the keys and objects describing the component groups as
976              the  values.  The  component  group  objects  have the following
977              fields:
978
979              name   The name of the component group. This is always the  same
980                     as the key in the componentGroups object.
981
982              displayName
983                     The   value   of   the   DISPLAY_NAME   field  passed  to
984                     cpack_add_component_group().
985
986              description
987                     The  value   of   the   DESCRIPTION   field   passed   to
988                     cpack_add_component_group().
989
990              parentGroup
991                     Only present if PARENT_GROUP was passed to cpack_add_com‐
992                     ponent_group(). If so, this field is a string value  con‐
993                     taining the component group’s parent group.
994
995              isExpandedByDefault
996                     True   if   EXPANDED   was   passed  to  cpack_add_compo‐
997                     nent_group(), false if it was not.
998
999              isBold True  if  BOLD_TITLE  was  passed   to   cpack_add_compo‐
1000                     nent_group(), false if it was not.
1001
1002              components
1003                     An  array  of names of components that are direct members
1004                     of the group (components that have this  group  as  their
1005                     GROUP). Components of subgroups are not included.
1006
1007              subgroups
1008                     An  array of names of component groups that are subgroups
1009                     of the group (groups that have this group as  their  PAR‐
1010                     ENT_GROUP).
1011
1012       installationTypes
1013              The  installationTypes field is an object with installation type
1014              names as the keys and objects describing the installation  types
1015              as  the values. The installation type objects have the following
1016              fields:
1017
1018              name   The name of the installation type.  This  is  always  the
1019                     same as the key in the installationTypes object.
1020
1021              displayName
1022                     The   value   of   the   DISPLAY_NAME   field  passed  to
1023                     cpack_add_install_type().
1024
1025              index  The integer index of the installation type in the list.
1026
1027       projects
1028              The projects field is  an  array  of  objects  describing  CMake
1029              projects  which  comprise  the CPack project. The values in this
1030              field are derived  from  CPACK_INSTALL_CMAKE_PROJECTS.  In  most
1031              cases,  this  will be only a single project. The project objects
1032              have the following fields:
1033
1034              projectName
1035                     The project name passed to CPACK_INSTALL_CMAKE_PROJECTS.
1036
1037              component
1038                     The name of the component or  component  set  which  com‐
1039                     prises the project.
1040
1041              directory
1042                     The  build  directory  of  the CMake project. This is the
1043                     directory which contains the cmake_install.cmake script.
1044
1045              subDirectory
1046                     The subdirectory to install the project into  inside  the
1047                     CPack package.
1048
1049       packageName
1050              The  package  name  given in CPACK_PACKAGE_NAME. Only present if
1051              this option is set.
1052
1053       packageVersion
1054              The package version given in CPACK_PACKAGE_VERSION. Only present
1055              if this option is set.
1056
1057       packageDescriptionFile
1058              The  package  description  file  given in CPACK_PACKAGE_DESCRIP‐
1059              TION_FILE. Only present if this option is set.
1060
1061       packageDescriptionSummary
1062              The package description summary given in  CPACK_PACKAGE_DESCRIP‐
1063              TION_SUMMARY. Only present if this option is set.
1064
1065       buildConfig
1066              The  build configuration given to CPack with the -C option. Only
1067              present if this option is set.
1068
1069       defaultDirectoryPermissions
1070              The     default     directory     permissions      given      in
1071              CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.   Only  present  if
1072              this option is set.
1073
1074       setDestdir
1075              True if CPACK_SET_DESTDIR is true, false if it is not.
1076
1077       packagingInstallPrefix
1078              The install prefix given in CPACK_PACKAGING_INSTALL_PREFIX. Only
1079              present if CPACK_SET_DESTDIR is true.
1080
1081       stripFiles
1082              True if CPACK_STRIP_FILES is true, false if it is not.
1083
1084       warnOnAbsoluteInstallDestination
1085              True   if  CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION  is  true,
1086              false if it is not.
1087
1088       errorOnAbsoluteInstallDestination
1089              True  if  CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION  is  true,
1090              false if it is not.
1091
1092   Variables specific to CPack External generator
1093       CPACK_EXTERNAL_REQUESTED_VERSIONS
1094              This variable is used to request a specific version of the CPack
1095              External generator. It is a list of  major.minor  values,  sepa‐
1096              rated by semicolons.
1097
1098              If this variable is set to a non-empty value, the CPack External
1099              generator will iterate through each item in the list  to  search
1100              for  a version that it knows how to generate. Requested versions
1101              should be listed in order of descending preference by the client
1102              software, as the first matching version in the list will be gen‐
1103              erated.
1104
1105              The generator knows how to generate the version if it has a ver‐
1106              sioned   generator  whose  major  version  exactly  matches  the
1107              requested major version, and whose minor version is greater than
1108              or  equal  to  the  requested  minor  version.  For  example, if
1109              CPACK_EXTERNAL_REQUESTED_VERSIONS contains 1.0,  and  the  CPack
1110              External  generator  knows how to generate 1.1, it will generate
1111              1.1.  If the generator doesn’t know how to generate a version in
1112              the  list, it skips the version and looks at the next one. If it
1113              doesn’t know how to generate any of the requested  versions,  an
1114              error is thrown.
1115
1116              If  this  variable  is  not set, or is empty, the CPack External
1117              generator will generate the highest major and minor version that
1118              it knows how to generate.
1119
1120              If   an   invalid   version   is   encountered  in  CPACK_EXTER‐
1121              NAL_REQUESTED_VERSIONS  (one  that  doesn’t  match  major.minor,
1122              where major and minor are integers), it is ignored.
1123
1124       CPACK_EXTERNAL_ENABLE_STAGING
1125              This variable can be set to true to enable optional installation
1126              into a temporary staging area which can then be  picked  up  and
1127              packaged by an external packaging tool.  The top level directory
1128              used by CPack for the current packaging  task  is  contained  in
1129              CPACK_TOPLEVEL_DIRECTORY.   It  is  automatically  cleaned up on
1130              each run before packaging is initiated and can be used for  cus‐
1131              tom temporary files required by the external packaging tool.  It
1132              also contains the staging  area  CPACK_TEMPORARY_DIRECTORY  into
1133              which CPack performs the installation when staging is enabled.
1134
1135       CPACK_EXTERNAL_PACKAGE_SCRIPT
1136              This  variable  can  optionally specify the full path to a CMake
1137              script file to be run as part of the CPack  invocation.   It  is
1138              invoked  after  (optional)  staging  took  place  and may run an
1139              external packaging tool. The script has access to the  variables
1140              defined by the CPack config file.
1141
1142       CPACK_EXTERNAL_BUILT_PACKAGES
1143              The CPACK_EXTERNAL_PACKAGE_SCRIPT script may set this list vari‐
1144              able to the full paths of generated package files.   CPack  will
1145              copy  these  files  from  the  staging directory back to the top
1146              build directory and  possibly  produce  checksum  files  if  the
1147              CPACK_PACKAGE_CHECKSUM is set.
1148
1149   CPack FreeBSD Generator
1150       The built in (binary) CPack FreeBSD (pkg) generator (Unix only)
1151
1152   Variables affecting the CPack FreeBSD (pkg) generator
1153          · CPACK_ARCHIVE_THREADS
1154
1155   Variables specific to CPack FreeBSD (pkg) generator
1156       The  CPack  FreeBSD  generator  may be used to create pkg(8) packages –
1157       these may be used on FreeBSD, DragonflyBSD, NetBSD, OpenBSD,  but  also
1158       on  Linux or OSX, depending on the installed package-management tools –
1159       using CPack.
1160
1161       The CPack FreeBSD generator is a CPack generator and uses the CPACK_XXX
1162       variables  used by CPack. It tries to re-use packaging information that
1163       may already be specified for Debian packages for the CPack DEB  Genera‐
1164       tor. It also tries to re-use RPM packaging information when Debian does
1165       not specify.
1166
1167       The CPack FreeBSD  generator  should  work  on  any  host  with  libpkg
1168       installed.  The packages it produces are specific to the host architec‐
1169       ture and ABI.
1170
1171       The CPack FreeBSD generator sets package-metadata  through  CPACK_FREE‐
1172       BSD_XXX  variables.  The  CPack FreeBSD generator, unlike the CPack Deb
1173       generator, does not specially support componentized packages; a  single
1174       package  is  created  from  all  the software artifacts created through
1175       CMake.
1176
1177       All of the variables can be set specifically for FreeBSD  packaging  in
1178       the  CPackConfig  file  or  in  CMakeLists.txt,  but  most of them have
1179       defaults  that  use  general  settings  (e.g.  CMAKE_PROJECT_NAME)   or
1180       Debian-specific  variables  when those make sense (e.g. the homepage of
1181       an upstream project is usually unchanged by the flavor  of  packaging).
1182       When  there is no Debian information to fall back on, but the RPM pack‐
1183       aging has it, fall back to the RPM information (e.g. package license).
1184
1185       CPACK_FREEBSD_PACKAGE_NAME
1186              Sets the package name (in the package manifest, but also affects
1187              the output filename).
1188
1189              · Mandatory: YES
1190
1191              · Default:
1192
1193                · CPACK_PACKAGE_NAME  (this  is  always  set  by CPack itself,
1194                  based on CMAKE_PROJECT_NAME).
1195
1196       CPACK_FREEBSD_PACKAGE_COMMENT
1197              Sets the package comment. This is  the  short  description  dis‐
1198              played by pkg(8) in standard “pkg info” output.
1199
1200              · Mandatory: YES
1201
1202              · Default:
1203
1204                · CPACK_PACKAGE_DESCRIPTION_SUMMARY  (this  is  always  set by
1205                  CPack itself, if nothing else sets it explicitly).
1206
1207                · PROJECT_DESCRIPTION (this can be set  with  the  DESCRIPTION
1208                  parameter for project()).
1209
1210       CPACK_FREEBSD_PACKAGE_DESCRIPTION
1211              Sets  the  package  description. This is the long description of
1212              the package, given by “pkg info”  with  a  specific  package  as
1213              argument.
1214
1215              · Mandatory: YES
1216
1217              · Default:
1218
1219                · CPACK_DEBIAN_PACKAGE_DESCRIPTION  (this  may  be set already
1220                  for Debian packaging, so we may as well re-use it).
1221
1222       CPACK_FREEBSD_PACKAGE_WWW
1223              The URL of the web  site  for  this  package,  preferably  (when
1224              applicable)  the  site  from  which  the  original source can be
1225              obtained and any additional upstream documentation  or  informa‐
1226              tion may be found.
1227
1228              · Mandatory: YES
1229
1230              · Default:
1231
1232                 · CMAKE_PROJECT_HOMEPAGE_URL,   or   if   that  is  not  set,
1233                   CPACK_DEBIAN_PACKAGE_HOMEPAGE (this may be set already  for
1234                   Debian packaging, so we may as well re-use it).
1235
1236       CPACK_FREEBSD_PACKAGE_LICENSE
1237              The  license, or licenses, which apply to this software package.
1238              This must be one or more license-identifiers that pkg recognizes
1239              as acceptable license identifiers (e.g. “GPLv2”).
1240
1241              · Mandatory: YES
1242
1243              · Default:
1244
1245                · CPACK_RPM_PACKAGE_LICENSE
1246
1247       CPACK_FREEBSD_PACKAGE_LICENSE_LOGIC
1248              This  variable  is  only of importance if there is more than one
1249              license.  The default is “single”, which is only applicable to a
1250              single license.  Other acceptable values are determined by pkg –
1251              those are “dual” or “multi” – meaning choice (OR) or  simultane‐
1252              ous (AND) application of the licenses.
1253
1254              · Mandatory: NO
1255
1256              · Default: single
1257
1258       CPACK_FREEBSD_PACKAGE_MAINTAINER
1259              The FreeBSD maintainer (e.g. kde@freebsd.org) of this package.
1260
1261              · Mandatory: YES
1262
1263              · Default: none
1264
1265       CPACK_FREEBSD_PACKAGE_ORIGIN
1266              The  origin (ports label) of this package; for packages built by
1267              CPack outside of the ports system this is  of  less  importance.
1268              The  default  puts the package somewhere under misc/, as a stop‐
1269              gap.
1270
1271              · Mandatory: YES
1272
1273              · Default: misc/<package name>
1274
1275       CPACK_FREEBSD_PACKAGE_CATEGORIES
1276              The ports categories where this package lives (if it were to  be
1277              built  from  ports).  If none is set a single category is deter‐
1278              mined based on the package origin.
1279
1280              · Mandatory: YES
1281
1282              · Default: derived from ORIGIN
1283
1284       CPACK_FREEBSD_PACKAGE_DEPS
1285              A list of package origins that should be added as package depen‐
1286              dencies.   These  are in the form <category>/<packagename>, e.g.
1287              x11/libkonq.  No version information needs to be provided  (this
1288              is not included in the manifest).
1289
1290              · Mandatory: NO
1291
1292              · Default: empty
1293
1294   CPack IFW Generator
1295       Configure  and run the Qt Installer Framework to generate a Qt install‐
1296       er.
1297
1298   Overview
1299       This cpack generator generates configuration and meta  information  for
1300       the  Qt Installer Framework (QtIFW), and runs QtIFW tools to generate a
1301       Qt installer.
1302
1303       QtIFW provides tools and utilities to create installers for  the  plat‐
1304       forms supported by Qt: Linux, Microsoft Windows, and macOS.
1305
1306       To make use of this generator, QtIFW needs to be installed.  The CPack‐
1307       IFW module looks for the location of the QtIFW command-line  utilities,
1308       and defines several commands to control the behavior of this generator.
1309
1310   Variables
1311       You  can  use  the  following variables to change behavior of CPack IFW
1312       generator.
1313
1314   Debug
1315       CPACK_IFW_VERBOSE
1316              Set to ON to enable addition debug output.  By default is OFF.
1317
1318   Package
1319       CPACK_IFW_PACKAGE_TITLE
1320              Name of the installer as displayed on the title bar.  By default
1321              used CPACK_PACKAGE_DESCRIPTION_SUMMARY.
1322
1323       CPACK_IFW_PACKAGE_PUBLISHER
1324              Publisher  of  the  software  (as  shown  in the Windows Control
1325              Panel).  By default used CPACK_PACKAGE_VENDOR.
1326
1327       CPACK_IFW_PRODUCT_URL
1328              URL to a page that contains  product  information  on  your  web
1329              site.
1330
1331       CPACK_IFW_PACKAGE_ICON
1332              Filename for a custom installer icon. The actual file is ‘.icns’
1333              (macOS), ‘.ico’ (Windows). No functionality on Unix.
1334
1335       CPACK_IFW_PACKAGE_WINDOW_ICON
1336              Filename for a custom window icon in PNG format for the Install‐
1337              er application.
1338
1339       CPACK_IFW_PACKAGE_LOGO
1340              Filename for a logo is used as QWizard::LogoPixmap.
1341
1342       CPACK_IFW_PACKAGE_WATERMARK
1343              Filename for a watermark is used as QWizard::WatermarkPixmap.
1344
1345       CPACK_IFW_PACKAGE_BANNER
1346              Filename for a banner is used as QWizard::BannerPixmap.
1347
1348       CPACK_IFW_PACKAGE_BACKGROUND
1349              Filename  for  an  image used as QWizard::BackgroundPixmap (only
1350              used by MacStyle).
1351
1352       CPACK_IFW_PACKAGE_WIZARD_STYLE
1353              Wizard style to be used (“Modern”, “Mac”, “Aero” or “Classic”).
1354
1355       CPACK_IFW_PACKAGE_STYLE_SHEET
1356              Filename for a stylesheet.
1357
1358       CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH
1359              Default width of the wizard in pixels. Setting  a  banner  image
1360              will override this.
1361
1362       CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT
1363              Default  height  of  the  wizard  in pixels. Setting a watermark
1364              image will override this.
1365
1366       CPACK_IFW_PACKAGE_TITLE_COLOR
1367              Color of the titles and subtitles (takes  an  HTML  color  code,
1368              such as “#88FF33”).
1369
1370       CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
1371              Name of the default program group for the product in the Windows
1372              Start menu.
1373
1374              By default used CPACK_IFW_PACKAGE_NAME.
1375
1376       CPACK_IFW_TARGET_DIRECTORY
1377              Default target directory  for  installation.   By  default  used
1378              “@ApplicationsDir@/CPACK_PACKAGE_INSTALL_DIRECTORY”   (variables
1379              embedded in ‘@’ are expanded by the QtIFW scripting engine).
1380
1381              You can use predefined variables.
1382
1383       CPACK_IFW_ADMIN_TARGET_DIRECTORY
1384              Default target directory  for  installation  with  administrator
1385              rights.
1386
1387              You can use predefined variables.
1388
1389       CPACK_IFW_PACKAGE_GROUP
1390              The group, which will be used to configure the root package
1391
1392       CPACK_IFW_PACKAGE_NAME
1393              The root package name, which will be used if configuration group
1394              is not specified
1395
1396       CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
1397              Filename of the generated maintenance tool.   The  platform-spe‐
1398              cific executable file extension is appended.
1399
1400              By default used QtIFW defaults (maintenancetool).
1401
1402       CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR
1403              Set  to  OFF  if the target directory should not be deleted when
1404              uninstalling.
1405
1406              Is ON by default
1407
1408       CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
1409              Filename for the  configuration  of  the  generated  maintenance
1410              tool.
1411
1412              By default used QtIFW defaults (maintenancetool.ini).
1413
1414       CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
1415              Set to ON if the installation path can contain non-ASCII charac‐
1416              ters.
1417
1418              Is ON for QtIFW less 2.0 tools.
1419
1420       CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
1421              Set to OFF if the installation path cannot contain space charac‐
1422              ters.
1423
1424              Is ON for QtIFW less 2.0 tools.
1425
1426       CPACK_IFW_PACKAGE_CONTROL_SCRIPT
1427              Filename for a custom installer control script.
1428
1429       CPACK_IFW_PACKAGE_RESOURCES
1430              List  of  additional  resources (‘.qrc’ files) to include in the
1431              installer binary.
1432
1433              You can use cpack_ifw_add_package_resources() command to resolve
1434              relative paths.
1435
1436       CPACK_IFW_PACKAGE_FILE_EXTENSION
1437              The target binary extension.
1438
1439              On  Linux,  the  name  of  the  target  binary  is automatically
1440              extended with ‘.run’, if you do not specify the extension.
1441
1442              On Windows, the target is created as  an  application  with  the
1443              extension ‘.exe’, which is automatically added, if not supplied.
1444
1445              On  Mac,  the  target  is  created as an DMG disk image with the
1446              extension ‘.dmg’, which is automatically added, if not supplied.
1447
1448       CPACK_IFW_REPOSITORIES_ALL
1449              The list of remote repositories.
1450
1451              The default value of this variable is computed by CPack and con‐
1452              tains  all repositories added with command cpack_ifw_add_reposi‐
1453              tory() or updated with command cpack_ifw_update_repository().
1454
1455       CPACK_IFW_DOWNLOAD_ALL
1456              If this is ON all components will be downloaded.  By default  is
1457              OFF or used value from CPACK_DOWNLOAD_ALL if set
1458
1459   Components
1460       CPACK_IFW_RESOLVE_DUPLICATE_NAMES
1461              Resolve duplicate names when installing components with groups.
1462
1463       CPACK_IFW_PACKAGES_DIRECTORIES
1464              Additional  prepared  packages dirs that will be used to resolve
1465              dependent components.
1466
1467       CPACK_IFW_REPOSITORIES_DIRECTORIES
1468              Additional prepared repository dirs that will be used to resolve
1469              and  repack  dependent  components.  This feature available only
1470              since QtIFW 3.1.
1471
1472   QtIFW Tools
1473       CPACK_IFW_FRAMEWORK_VERSION
1474              The version of used QtIFW tools.
1475
1476       The following variables provide the locations of the QtIFW command-line
1477       tools  as  discovered  by  the  module  CPackIFW.   These variables are
1478       cached, and may be configured if needed.
1479
1480       CPACK_IFW_ARCHIVEGEN_EXECUTABLE
1481              The path to archivegen.
1482
1483       CPACK_IFW_BINARYCREATOR_EXECUTABLE
1484              The path to binarycreator.
1485
1486       CPACK_IFW_REPOGEN_EXECUTABLE
1487              The path to repogen.
1488
1489       CPACK_IFW_INSTALLERBASE_EXECUTABLE
1490              The path to installerbase.
1491
1492       CPACK_IFW_DEVTOOL_EXECUTABLE
1493              The path to devtool.
1494
1495   Hints for Finding QtIFW
1496       Generally, the CPack IFW generator automatically finds QtIFW tools, but
1497       if  you  don’t  use a default path for installation of the QtIFW tools,
1498       the path may be specified in either a CMake or an environment variable:
1499
1500       CPACK_IFW_ROOT
1501              An CMake variable which specifies the location of the QtIFW tool
1502              suite.
1503
1504              The  variable  will  be cached in the CPackConfig.cmake file and
1505              used at CPack runtime.
1506
1507       QTIFWDIR
1508              An environment variable which  specifies  the  location  of  the
1509              QtIFW tool suite.
1510
1511       NOTE:
1512          The specified path should not contain “bin” at the end (for example:
1513          “D:\DevTools\QtIFW2.0.5”).
1514
1515       The CPACK_IFW_ROOT variable has a higher  priority  and  overrides  the
1516       value of the QTIFWDIR variable.
1517
1518   Other Settings
1519   Online installer
1520       By  default,  this generator generates an offline installer. This means
1521       that that all packaged files are fully contained in the installer  exe‐
1522       cutable.
1523
1524       In  contrast,  an online installer will download some or all components
1525       from a remote server.
1526
1527       The DOWNLOADED option in the  cpack_add_component()  command  specifies
1528       that  a component is to be downloaded. Alternatively, the ALL option in
1529       the cpack_configure_downloads() command specifies that  all  components
1530       are to be be downloaded.
1531
1532       The  cpack_ifw_add_repository()  command and the CPACK_IFW_DOWNLOAD_ALL
1533       variable allow for more specific configuration.
1534
1535       When there are online components, CPack  will  write  them  to  archive
1536       files.  The help page of the CPackComponent module, especially the sec‐
1537       tion on the cpack_configure_downloads() function, explains how to  make
1538       these files accessible from a download URL.
1539
1540   Internationalization
1541       Some  variables  and command arguments support internationalization via
1542       CMake script. This is an optional feature.
1543
1544       Installers created by QtIFW tools have built-in  support  for  interna‐
1545       tionalization  and  many  phrases  are localized to many languages, but
1546       this does not apply to the  description  of  the  your  components  and
1547       groups that will be distributed.
1548
1549       Localization of the description of your components and groups is useful
1550       for users of your installers.
1551
1552       A localized variable or argument can contain a  single  default  value,
1553       and a set of pairs the name of the locale and the localized value.
1554
1555       For example:
1556
1557          set(LOCALIZABLE_VARIABLE "Default value"
1558            en "English value"
1559            en_US "American value"
1560            en_GB "Great Britain value"
1561            )
1562
1563   See Also
1564       Qt Installer Framework Manual:
1565
1566       · Index page: http://doc.qt.io/qtinstallerframework/index.html
1567
1568       · Component                                                  Scripting:
1569         http://doc.qt.io/qtinstallerframework/scripting.html
1570
1571       · Predefined                                                 Variables:
1572         http://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
1573
1574       · Promoting                                                    Updates:
1575         http://doc.qt.io/qtinstallerframework/ifw-updates.html
1576
1577       Download Qt Installer Framework for your platform from Qt site:
1578              http://download.qt.io/official_releases/qt-installer-framework
1579
1580   CPack NSIS Generator
1581       CPack  Nullsoft  Scriptable  Install  System  (NSIS) generator specific
1582       options.
1583
1584       The NSIS generator requires NSIS 3.0 or newer.
1585
1586   Variables specific to CPack NSIS generator
1587       The following variables are specific to the graphical installers  built
1588       on Windows Nullsoft Scriptable Install System.
1589
1590       CPACK_NSIS_INSTALL_ROOT
1591              The  default installation directory presented to the end user by
1592              the NSIS installer is under this root dir.  The  full  directory
1593              presented        to        the        end        user        is:
1594              ${CPACK_NSIS_INSTALL_ROOT}/${CPACK_PACKAGE_INSTALL_DIRECTORY}
1595
1596       CPACK_NSIS_MUI_ICON
1597              An icon filename.  The name of a *.ico file  used  as  the  main
1598              icon for the generated install program.
1599
1600       CPACK_NSIS_MUI_UNIICON
1601              An  icon  filename.   The  name of a *.ico file used as the main
1602              icon for the generated uninstall program.
1603
1604       CPACK_NSIS_INSTALLER_MUI_ICON_CODE
1605              undocumented.
1606
1607       CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
1608              The filename of a bitmap to use as the  NSIS  MUI_WELCOMEFINISH‐
1609              PAGE_BITMAP.
1610
1611       CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP
1612              The filename of a bitmap to use as the NSIS MUI_UNWELCOMEFINISH‐
1613              PAGE_BITMAP.
1614
1615       CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS
1616              Extra NSIS commands that will be added to the beginning  of  the
1617              install  Section,  before  your install tree is available on the
1618              target system.
1619
1620       CPACK_NSIS_EXTRA_INSTALL_COMMANDS
1621              Extra NSIS commands that will be added to the end of the install
1622              Section, after your install tree is available on the target sys‐
1623              tem.
1624
1625       CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
1626              Extra NSIS commands that will be added to the uninstall Section,
1627              before your install tree is removed from the target system.
1628
1629       CPACK_NSIS_COMPRESSOR
1630              The arguments that will be passed to the NSIS SetCompressor com‐
1631              mand.
1632
1633       CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
1634              Ask about uninstalling previous versions first.  If this is  set
1635              to  ON,  then an installer will look for previous installed ver‐
1636              sions and if one is found, ask the user whether to uninstall  it
1637              before proceeding with the install.
1638
1639       CPACK_NSIS_MODIFY_PATH
1640              Modify  PATH  toggle.   If this is set to ON, then an extra page
1641              will appear in the installer that will allow the user to  choose
1642              whether the program directory should be added to the system PATH
1643              variable.
1644
1645       CPACK_NSIS_DISPLAY_NAME
1646              The display name string that appears in the Windows Apps &  fea‐
1647              tures in Control Panel
1648
1649       CPACK_NSIS_PACKAGE_NAME
1650              The title displayed at the top of the installer.
1651
1652       CPACK_NSIS_INSTALLED_ICON_NAME
1653              A path to the executable that contains the installer icon.
1654
1655       CPACK_NSIS_HELP_LINK
1656              URL to a web site providing assistance in installing your appli‐
1657              cation.
1658
1659       CPACK_NSIS_URL_INFO_ABOUT
1660              URL to a web site providing more information about your applica‐
1661              tion.
1662
1663       CPACK_NSIS_CONTACT
1664              Contact information for questions and comments about the instal‐
1665              lation process.
1666
1667       CPACK_NSIS_<compName>_INSTALL_DIRECTORY
1668              Custom install directory for the specified component  <compName>
1669              instead of $INSTDIR.
1670
1671       CPACK_NSIS_CREATE_ICONS_EXTRA
1672              Additional NSIS commands for creating Start Menu shortcuts.
1673
1674       CPACK_NSIS_DELETE_ICONS_EXTRA
1675              Additional NSIS commands to uninstall Start Menu shortcuts.
1676
1677       CPACK_NSIS_EXECUTABLES_DIRECTORY
1678              Creating  NSIS  Start  Menu  links  assumes that they are in bin
1679              unless this variable is set.  For example, you would set this to
1680              exec if your executables are in an exec directory.
1681
1682       CPACK_NSIS_MUI_FINISHPAGE_RUN
1683              Specify an executable to add an option to run on the finish page
1684              of the NSIS installer.
1685
1686       CPACK_NSIS_MENU_LINKS
1687              Specify links in [application] menu.  This should contain a list
1688              of pair link link name. The link may be a URL or a path relative
1689              to installation prefix.  Like:
1690
1691                 set(CPACK_NSIS_MENU_LINKS
1692                     "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html"
1693                     "CMake Help" "https://cmake.org" "CMake Web Site")
1694
1695       CPACK_NSIS_UNINSTALL_NAME
1696              Specify the name  of  the  program  to  uninstall  the  version.
1697              Default is Uninstall.
1698
1699       CPACK_NSIS_WELCOME_TITLE
1700              The  title  to  display  on  the top of the page for the welcome
1701              page.
1702
1703       CPACK_NSIS_WELCOME_TITLE_3LINES
1704              Display the title in the welcome page on 3 lines instead of 2.
1705
1706       CPACK_NSIS_FINISH_TITLE
1707              The title to display on the top of the page for the finish page.
1708
1709       CPACK_NSIS_FINISH_TITLE_3LINES
1710              Display the title in the finish page on 3 lines instead of 2.
1711
1712       CPACK_NSIS_MUI_HEADERIMAGE
1713              The image to display on the header of installers pages.
1714
1715       CPACK_NSIS_MANIFEST_DPI_AWARE
1716              If set, declares that the installer is DPI-aware.
1717
1718   CPack NuGet Generator
1719       When build a NuGet package there is no direct way to control an  output
1720       filename  due a lack of the corresponding CLI option of NuGet, so there
1721       is no CPACK_NUGET_PACKAGE_FILENAME variable. To form the  output  file‐
1722       name  NuGet  uses  the  package  name  and the version according to its
1723       built-in rules.
1724
1725       Also,   be   aware   that   including    a    top    level    directory
1726       (CPACK_INCLUDE_TOPLEVEL_DIRECTORY) is ignored by this generator.
1727
1728   Variables specific to CPack NuGet generator
1729       The  CPack  NuGet  generator may be used to create NuGet packages using
1730       CPack. The CPack NuGet generator is a CPack generator thus it uses  the
1731       CPACK_XXX variables used by CPack.
1732
1733       The CPack NuGet generator has specific features which are controlled by
1734       the specifics CPACK_NUGET_XXX variables. In the “one  per  group”  mode
1735       (see  CPACK_COMPONENTS_GROUPING),  <compName>  placeholder in the vari‐
1736       ables below would contain a group name (uppercased and  turned  into  a
1737       “C” identifier).
1738
1739       List of CPack NuGet generator specific variables:
1740
1741       CPACK_NUGET_COMPONENT_INSTALL
1742              Enable component packaging for CPack NuGet generator
1743
1744              · Mandatory : NO
1745
1746              · Default   : OFF
1747
1748       CPACK_NUGET_PACKAGE_NAME
1749
1750       CPACK_NUGET_<compName>_PACKAGE_NAME
1751              The NUGET package name.
1752
1753              · Mandatory : YES
1754
1755              · Default   : CPACK_PACKAGE_NAME
1756
1757       CPACK_NUGET_PACKAGE_VERSION
1758
1759       CPACK_NUGET_<compName>_PACKAGE_VERSION
1760              The NuGet package version.
1761
1762              · Mandatory : YES
1763
1764              · Default   : CPACK_PACKAGE_VERSION
1765
1766       CPACK_NUGET_PACKAGE_DESCRIPTION
1767
1768       CPACK_NUGET_<compName>_PACKAGE_DESCRIPTION
1769              A long description of the package for UI display.
1770
1771              · Mandatory : YES
1772
1773              ·
1774
1775                Default :
1776
1777                       · CPACK_COMPONENT_<compName>_DESCRIPTION,
1778
1779                       · CPACK_COMPONENT_GROUP_<groupName>_DESCRIPTION,
1780
1781                       · CPACK_PACKAGE_DESCRIPTION
1782
1783       CPACK_NUGET_PACKAGE_AUTHORS
1784
1785       CPACK_NUGET_<compName>_PACKAGE_AUTHORS
1786              A comma-separated list of packages authors, matching the profile
1787              names on nuget.org. These are displayed in the NuGet Gallery  on
1788              nuget.org  and  are used to cross-reference packages by the same
1789              authors.
1790
1791              · Mandatory : YES
1792
1793              · Default   : CPACK_PACKAGE_VENDOR
1794
1795       CPACK_NUGET_PACKAGE_TITLE
1796
1797       CPACK_NUGET_<compName>_PACKAGE_TITLE
1798              A human-friendly title of the package, typically used in UI dis‐
1799              plays  as on nuget.org and the Package Manager in Visual Studio.
1800              If not specified, the package ID is used.
1801
1802              · Mandatory : NO
1803
1804              ·
1805
1806                Default :
1807
1808                       · CPACK_COMPONENT_<compName>_DISPLAY_NAME,
1809
1810                       · CPACK_COMPONENT_GROUP_<groupName>_DISPLAY_NAME
1811
1812       CPACK_NUGET_PACKAGE_OWNERS
1813
1814       CPACK_NUGET_<compName>_PACKAGE_OWNERS
1815              A comma-separated list of the  package  creators  using  profile
1816              names  on  nuget.org. This is often the same list as in authors,
1817              and is ignored when uploading the package to nuget.org.
1818
1819              · Mandatory : NO
1820
1821              · Default   : -
1822
1823       CPACK_NUGET_PACKAGE_HOMEPAGE_URL
1824
1825       CPACK_NUGET_<compName>_PACKAGE_HOMEPAGE_URL
1826              A URL for the package’s home page, often shown in UI displays as
1827              well as nuget.org.
1828
1829              · Mandatory : NO
1830
1831              · Default   : CPACK_PACKAGE_HOMEPAGE_URL
1832
1833       CPACK_NUGET_PACKAGE_LICENSEURL
1834
1835       CPACK_NUGET_<compName>_PACKAGE_LICENSEURL
1836              A  URL  for the package’s license, often shown in UI displays as
1837              well as nuget.org.
1838
1839              · Mandatory : NO
1840
1841              · Default   : -
1842
1843       CPACK_NUGET_PACKAGE_ICONURL
1844
1845       CPACK_NUGET_<compName>_PACKAGE_ICONURL
1846              A URL for a 64x64 image with transparency background to  use  as
1847              the icon for the package in UI display.
1848
1849              · Mandatory : NO
1850
1851              · Default   : -
1852
1853       CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY
1854
1855       CPACK_NUGET_<compName>_PACKAGE_DESCRIPTION_SUMMARY
1856              A short description of the package for UI display. If omitted, a
1857              truncated version of description is used.
1858
1859              · Mandatory : NO
1860
1861              · Default   : CPACK_PACKAGE_DESCRIPTION_SUMMARY
1862
1863       CPACK_NUGET_PACKAGE_RELEASE_NOTES
1864
1865       CPACK_NUGET_<compName>_PACKAGE_RELEASE_NOTES
1866              A description of the changes made in this release of  the  pack‐
1867              age,  often used in UI like the Updates tab of the Visual Studio
1868              Package Manager in place of the package description.
1869
1870              · Mandatory : NO
1871
1872              · Default   : -
1873
1874       CPACK_NUGET_PACKAGE_COPYRIGHT
1875
1876       CPACK_NUGET_<compName>_PACKAGE_COPYRIGHT
1877              Copyright details for the package.
1878
1879              · Mandatory : NO
1880
1881              · Default   : -
1882
1883       CPACK_NUGET_PACKAGE_TAGS
1884
1885       CPACK_NUGET_<compName>_PACKAGE_TAGS
1886              A space-delimited list of tags and keywords  that  describe  the
1887              package  and  aid discoverability of packages through search and
1888              filtering.
1889
1890              · Mandatory : NO
1891
1892              · Default   : -
1893
1894       CPACK_NUGET_PACKAGE_DEPENDENCIES
1895
1896       CPACK_NUGET_<compName>_PACKAGE_DEPENDENCIES
1897              A list of package dependencies.
1898
1899              · Mandatory : NO
1900
1901              · Default   : -
1902
1903       CPACK_NUGET_PACKAGE_DEPENDENCIES_<dependency>_VERSION
1904
1905       CPACK_NUGET_<compName>_PACKAGE_DEPENDENCIES_<dependency>_VERSION
1906              A version specification for  the  particular  dependency,  where
1907              <dependency>  is  an  item  of  the  dependency list (see above)
1908              transformed with MAKE_C_IDENTIFIER function of string() command.
1909
1910              · Mandatory : NO
1911
1912              · Default   : -
1913
1914       CPACK_NUGET_PACKAGE_DEBUG
1915              Enable debug messages while executing CPack NuGet generator.
1916
1917              · Mandatory : NO
1918
1919              · Default   : OFF
1920
1921   CPack PackageMaker Generator
1922       PackageMaker CPack generator (macOS).
1923
1924       Deprecated since version 3.17: Xcode no longer distributes the Package‐
1925       Maker  tools.  This CPack generator will be removed in a future version
1926       of CPack.
1927
1928
1929   Variables specific to CPack PackageMaker generator
1930       The following variable is specific to installers  built  on  Mac  macOS
1931       using PackageMaker:
1932
1933       CPACK_OSX_PACKAGE_VERSION
1934              The  version  of  macOS  that the resulting PackageMaker archive
1935              should be compatible with. Different versions of  macOS  support
1936              different  features.  For  example,  CPack can only build compo‐
1937              nent-based installers for macOS 10.4  or  newer,  and  can  only
1938              build  installers  that download components on-the-fly for macOS
1939              10.5 or newer. If left blank, this value will be set to the min‐
1940              imum  version of macOS that supports the requested features. Set
1941              this variable to some value (e.g., 10.4) only  if  you  want  to
1942              guarantee  that your installer will work on that version of mac‐
1943              OS, and don’t mind missing extra features available in  the  in‐
1944              staller shipping with later versions of macOS.
1945
1946       CPACK_PACKAGEMAKER_BACKGROUND
1947              Adds  a  background  to Distribution XML if specified. The value
1948              contains the path to image in Resources directory.
1949
1950       CPACK_PACKAGEMAKER_BACKGROUND_ALIGNMENT
1951              Adds an alignment attribute to the  background  in  Distribution
1952              XML.  Refer to Apple documentation for valid values.
1953
1954       CPACK_PACKAGEMAKER_BACKGROUND_SCALING
1955              Adds  a scaling attribute to the background in Distribution XML.
1956              Refer to Apple documentation for valid values.
1957
1958       CPACK_PACKAGEMAKER_BACKGROUND_MIME_TYPE
1959              Adds a mime-type attribute to  the  background  in  Distribution
1960              XML.  The option contains MIME type of an image.
1961
1962       CPACK_PACKAGEMAKER_BACKGROUND_UTI
1963              Adds  an  uti  attribute  to the background in Distribution XML.
1964              The option contains UTI type of an image.
1965
1966       CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA
1967              Adds a background for the Dark Aqua theme to Distribution XML if
1968              specified.  The  value  contains  the path to image in Resources
1969              directory.
1970
1971       CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_ALIGNMENT
1972              Does the same as CPACK_PACKAGEMAKER_BACKGROUND_ALIGNMENT option,
1973              but for the dark theme.
1974
1975       CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_SCALING
1976              Does  the  same as CPACK_PACKAGEMAKER_BACKGROUND_SCALING option,
1977              but for the dark theme.
1978
1979       CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_MIME_TYPE
1980              Does the same as CPACK_PACKAGEMAKER_BACKGROUND_MIME_TYPE option,
1981              but for the dark theme.
1982
1983       CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_UTI
1984              Does  the  same as CPACK_PACKAGEMAKER_BACKGROUND_UTI option, but
1985              for the dark theme.
1986
1987   CPack productbuild Generator
1988       productbuild CPack generator (macOS).
1989
1990   Variables specific to CPack productbuild generator
1991       The following variable is specific to installers  built  on  Mac  macOS
1992       using ProductBuild:
1993
1994       CPACK_COMMAND_PRODUCTBUILD
1995              Path  to  the productbuild(1) command used to generate a product
1996              archive for the macOS Installer or Mac App Store.  This variable
1997              can  be  used to override the automatically detected command (or
1998              specify its location if the auto-detection fails to find it).
1999
2000       CPACK_PRODUCTBUILD_IDENTITY_NAME
2001              Adds a digital signature to the resulting package.
2002
2003       CPACK_PRODUCTBUILD_KEYCHAIN_PATH
2004              Specify a specific keychain to search for the signing identity.
2005
2006       CPACK_COMMAND_PKGBUILD
2007              Path to the pkgbuild(1) command used to generate an macOS compo‐
2008              nent  package  on  macOS.  This variable can be used to override
2009              the automatically detected command (or specify its  location  if
2010              the auto-detection fails to find it).
2011
2012       CPACK_PKGBUILD_IDENTITY_NAME
2013              Adds a digital signature to the resulting package.
2014
2015       CPACK_PKGBUILD_KEYCHAIN_PATH
2016              Specify a specific keychain to search for the signing identity.
2017
2018       CPACK_PREFLIGHT_<COMP>_SCRIPT
2019              Full  path  to a file that will be used as the preinstall script
2020              for the named <COMP> component’s package, where  <COMP>  is  the
2021              uppercased  component  name.   No  preinstall script is added if
2022              this variable is not defined for a given component.
2023
2024       CPACK_POSTFLIGHT_<COMP>_SCRIPT
2025              Full path to a file that will be used as the postinstall  script
2026              for  the  named  <COMP> component’s package, where <COMP> is the
2027              uppercased component name.  No postinstall script  is  added  if
2028              this variable is not defined for a given component.
2029
2030       CPACK_PRODUCTBUILD_RESOURCES_DIR
2031              If  specified  the productbuild generator copies files from this
2032              directory (including subdirectories) to the Resources directory.
2033              This    is    done   before   the   CPACK_RESOURCE_FILE_WELCOME,
2034              CPACK_RESOURCE_FILE_README,   and    CPACK_RESOURCE_FILE_LICENSE
2035              files are copied.
2036
2037       CPACK_PRODUCTBUILD_BACKGROUND
2038              Adds  a  background  to Distribution XML if specified. The value
2039              contains the path to image in Resources directory.
2040
2041       CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT
2042              Adds an alignment attribute to the  background  in  Distribution
2043              XML.  Refer to Apple documentation for valid values.
2044
2045       CPACK_PRODUCTBUILD_BACKGROUND_SCALING
2046              Adds  a scaling attribute to the background in Distribution XML.
2047              Refer to Apple documentation for valid values.
2048
2049       CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE
2050              Adds a mime-type attribute to  the  background  in  Distribution
2051              XML.  The option contains MIME type of an image.
2052
2053       CPACK_PRODUCTBUILD_BACKGROUND_UTI
2054              Adds  an  uti  attribute  to the background in Distribution XML.
2055              The option contains UTI type of an image.
2056
2057       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA
2058              Adds a background for the Dark Aqua theme to Distribution XML if
2059              specified.  The  value  contains  the path to image in Resources
2060              directory.
2061
2062       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_ALIGNMENT
2063              Does the same as CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT option,
2064              but for the dark theme.
2065
2066       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_SCALING
2067              Does  the  same as CPACK_PRODUCTBUILD_BACKGROUND_SCALING option,
2068              but for the dark theme.
2069
2070       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_MIME_TYPE
2071              Does the same as CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE option,
2072              but for the dark theme.
2073
2074       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_UTI
2075              Does  the  same as CPACK_PRODUCTBUILD_BACKGROUND_UTI option, but
2076              for the dark theme.
2077
2078   CPack RPM Generator
2079       The built in (binary) CPack RPM generator (Unix only)
2080
2081   Variables specific to CPack RPM generator
2082       The CPack RPM generator may be used to create RPM packages using CPack.
2083       The CPack RPM generator is a CPack generator thus it uses the CPACK_XXX
2084       variables used by CPack.
2085
2086       The CPack RPM generator has specific features which are  controlled  by
2087       the specifics CPACK_RPM_XXX variables.
2088
2089       CPACK_RPM_<COMPONENT>_XXXX  variables may be used in order to have com‐
2090       ponent specific values.  Note however that <COMPONENT>  refers  to  the
2091       grouping  name written in upper case. It may be either a component name
2092       or a component GROUP name. Usually those variables  correspond  to  RPM
2093       spec  file  entities.  One  may  find information about spec files here
2094       http://www.rpm.org/wiki/Docs
2095
2096       NOTE:
2097          <COMPONENT> part of variables is preferred to be in upper case (e.g.
2098          if  component is named foo then use CPACK_RPM_FOO_XXXX variable name
2099          format) as is with other CPACK_<COMPONENT>_XXXX variables.  For  the
2100          purposes  of  back compatibility (CMake/CPack version 3.5 and lower)
2101          support for  same  cased  component  (e.g.  fOo  would  be  used  as
2102          CPACK_RPM_fOo_XXXX)  is  still  supported  for  variables defined in
2103          older versions of CMake/CPack but is not  guaranteed  for  variables
2104          that will be added in the future. For the sake of back compatibility
2105          same cased component variables also override  upper  cased  versions
2106          where both are present.
2107
2108       Here are some CPack RPM generator wiki resources that are here for his‐
2109       toric reasons and are no longer maintained but may still prove useful:
2110
2111          · https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
2112
2113          · https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#rpm-unix-only
2114
2115       List of CPack RPM generator specific variables:
2116
2117       CPACK_RPM_COMPONENT_INSTALL
2118              Enable component packaging for CPack RPM generator
2119
2120              · Mandatory : NO
2121
2122              · Default   : OFF
2123
2124              If enabled (ON) multiple packages are generated.  By  default  a
2125              single package containing files of all components is generated.
2126
2127       CPACK_RPM_PACKAGE_SUMMARY
2128
2129       CPACK_RPM_<component>_PACKAGE_SUMMARY
2130              The RPM package summary.
2131
2132              · Mandatory : YES
2133
2134              · Default   : CPACK_PACKAGE_DESCRIPTION_SUMMARY
2135
2136       CPACK_RPM_PACKAGE_NAME
2137
2138       CPACK_RPM_<component>_PACKAGE_NAME
2139              The RPM package name.
2140
2141              · Mandatory : YES
2142
2143              · Default   : CPACK_PACKAGE_NAME
2144
2145       CPACK_RPM_FILE_NAME
2146
2147       CPACK_RPM_<component>_FILE_NAME
2148              Package file name.
2149
2150              · Mandatory : YES
2151
2152              ·
2153
2154                Default
2155                       <CPACK_PACKAGE_FILE_NAME>[-<component>].rpm with spaces
2156                       replaced by ‘-‘
2157
2158              This may be set to RPM-DEFAULT to allow rpmbuild tool to  gener‐
2159              ate package file name by itself.  Alternatively provided package
2160              file name must end with .rpm suffix.
2161
2162              NOTE:
2163                 By using user provided spec file, rpm macro  extensions  such
2164                 as  for generating debuginfo packages or by simply using mul‐
2165                 tiple components more than one rpm  file  may  be  generated,
2166                 either  from  a  single spec file or from multiple spec files
2167                 (each component execution produces its own  spec  file).   In
2168                 such cases duplicate file names may occur as a result of this
2169                 variable setting or spec file  content  structure.  Duplicate
2170                 files get overwritten and it is up to the packager to set the
2171                 variables in a manner that will prevent such errors.
2172
2173       CPACK_RPM_MAIN_COMPONENT
2174              Main component that is packaged without component suffix.
2175
2176              · Mandatory : NO
2177
2178              · Default   : -
2179
2180              This variable can be set to any component or group name so  that
2181              component  or  group  rpm package is generated without component
2182              suffix in filename and package name.
2183
2184       CPACK_RPM_PACKAGE_EPOCH
2185              The RPM package epoch
2186
2187              · Mandatory : No
2188
2189              · Default   : -
2190
2191              Optional number that should be incremented  when  changing  ver‐
2192              sioning  schemas  or  fixing  mistakes in the version numbers of
2193              older packages.
2194
2195       CPACK_RPM_PACKAGE_VERSION
2196              The RPM package version.
2197
2198              · Mandatory : YES
2199
2200              · Default   : CPACK_PACKAGE_VERSION
2201
2202       CPACK_RPM_PACKAGE_ARCHITECTURE
2203
2204       CPACK_RPM_<component>_PACKAGE_ARCHITECTURE
2205              The RPM package architecture.
2206
2207              · Mandatory : YES
2208
2209              · Default   : Native architecture output by uname -m
2210
2211              This may be set to noarch if you know you are building a  noarch
2212              package.
2213
2214       CPACK_RPM_PACKAGE_RELEASE
2215              The RPM package release.
2216
2217              · Mandatory : YES
2218
2219              · Default   : 1
2220
2221              This  is  the numbering of the RPM package itself, i.e. the ver‐
2222              sion of the packaging and not the version of  the  content  (see
2223              CPACK_RPM_PACKAGE_VERSION).  One may change the default value if
2224              the previous packaging was buggy and/or you want to put  here  a
2225              fancy Linux distro specific numbering.
2226
2227       NOTE:
2228          This  is the string that goes into the RPM Release: field. Some dis‐
2229          tros (e.g. Fedora, CentOS) require 1%{?dist} format and not  just  a
2230          number.      %{?dist}    part    can    be    added    by    setting
2231          CPACK_RPM_PACKAGE_RELEASE_DIST.
2232
2233       CPACK_RPM_PACKAGE_RELEASE_DIST
2234              The dist tag that is added  RPM Release: field.
2235
2236              · Mandatory : NO
2237
2238              · Default   : OFF
2239
2240              This is the reported %{dist} tag from the  current  distribution
2241              or  empty  %{dist}  if RPM macro is not set. If this variable is
2242              set then RPM Release: field value is  set  to  ${CPACK_RPM_PACK‐
2243              AGE_RELEASE}%{?dist}.
2244
2245       CPACK_RPM_PACKAGE_LICENSE
2246              The RPM package license policy.
2247
2248              · Mandatory : YES
2249
2250              · Default   : “unknown”
2251
2252       CPACK_RPM_PACKAGE_GROUP
2253
2254       CPACK_RPM_<component>_PACKAGE_GROUP
2255              The RPM package group.
2256
2257              · Mandatory : YES
2258
2259              · Default   : “unknown”
2260
2261       CPACK_RPM_PACKAGE_VENDOR
2262              The RPM package vendor.
2263
2264              · Mandatory : YES
2265
2266              · Default   : CPACK_PACKAGE_VENDOR if set or “unknown”
2267
2268       CPACK_RPM_PACKAGE_URL
2269
2270       CPACK_RPM_<component>_PACKAGE_URL
2271              The projects URL.
2272
2273              · Mandatory : NO
2274
2275              · Default   : CMAKE_PROJECT_HOMEPAGE_URL
2276
2277       CPACK_RPM_PACKAGE_DESCRIPTION
2278
2279       CPACK_RPM_<component>_PACKAGE_DESCRIPTION
2280              RPM package description.
2281
2282              · Mandatory : YES
2283
2284              · Default  :  CPACK_COMPONENT_<compName>_DESCRIPTION  (component
2285                based installers only) if set,  CPACK_PACKAGE_DESCRIPTION_FILE
2286                if set or “no package description available”
2287
2288       CPACK_RPM_COMPRESSION_TYPE
2289              RPM compression type.
2290
2291              · Mandatory : NO
2292
2293              · Default   : -
2294
2295              May be used to override RPM compression type to be used to build
2296              the RPM. For example some Linux distribution now default to lzma
2297              or  xz compression whereas older cannot use such RPM. Using this
2298              one can enforce compression type to be used.
2299
2300              Possible values are:
2301
2302              · lzma
2303
2304              · xz
2305
2306              · bzip2
2307
2308              · gzip
2309
2310       CPACK_RPM_PACKAGE_AUTOREQ
2311
2312       CPACK_RPM_<component>_PACKAGE_AUTOREQ
2313              RPM spec autoreq field.
2314
2315              · Mandatory : NO
2316
2317              · Default   : -
2318
2319              May be used to enable (1, yes)  or  disable  (0,  no)  automatic
2320              shared libraries dependency detection. Dependencies are added to
2321              requires list.
2322
2323              NOTE:
2324                 By default automatic dependency detection is enabled  by  rpm
2325                 generator.
2326
2327       CPACK_RPM_PACKAGE_AUTOPROV
2328
2329       CPACK_RPM_<component>_PACKAGE_AUTOPROV
2330              RPM spec autoprov field.
2331
2332              · Mandatory : NO
2333
2334              · Default   : -
2335
2336              May  be  used  to  enable  (1, yes) or disable (0, no) automatic
2337              listing of shared libraries that are provided  by  the  package.
2338              Shared libraries are added to provides list.
2339
2340              NOTE:
2341                 By  default  automatic  provides  detection is enabled by rpm
2342                 generator.
2343
2344       CPACK_RPM_PACKAGE_AUTOREQPROV
2345
2346       CPACK_RPM_<component>_PACKAGE_AUTOREQPROV
2347              RPM spec autoreqprov field.
2348
2349              · Mandatory : NO
2350
2351              · Default   : -
2352
2353              Variable enables/disables autoreq and autoprov at the same time.
2354              See CPACK_RPM_PACKAGE_AUTOREQ and CPACK_RPM_PACKAGE_AUTOPROV for
2355              more details.
2356
2357              NOTE:
2358                 By default automatic detection feature is enabled by rpm.
2359
2360       CPACK_RPM_PACKAGE_REQUIRES
2361
2362       CPACK_RPM_<component>_PACKAGE_REQUIRES
2363              RPM spec requires field.
2364
2365              · Mandatory : NO
2366
2367              · Default   : -
2368
2369              May be used to set RPM dependencies (requires).  Note  that  you
2370              must  enclose  the  complete requires string between quotes, for
2371              example:
2372
2373                 set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
2374
2375              The required package list of an RPM file could be printed with:
2376
2377                 rpm -qp --requires file.rpm
2378
2379       CPACK_RPM_PACKAGE_CONFLICTS
2380
2381       CPACK_RPM_<component>_PACKAGE_CONFLICTS
2382              RPM spec conflicts field.
2383
2384              · Mandatory : NO
2385
2386              · Default   : -
2387
2388              May be used to set negative RPM dependencies  (conflicts).  Note
2389              that  you  must  enclose  the  complete  requires string between
2390              quotes, for example:
2391
2392                 set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
2393
2394              The conflicting package list of an RPM  file  could  be  printed
2395              with:
2396
2397                 rpm -qp --conflicts file.rpm
2398
2399       CPACK_RPM_PACKAGE_REQUIRES_PRE
2400
2401       CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE
2402              RPM spec requires(pre) field.
2403
2404              · Mandatory : NO
2405
2406              · Default   : -
2407
2408              May  be used to set RPM preinstall dependencies (requires(pre)).
2409              Note that you must enclose the complete requires string  between
2410              quotes, for example:
2411
2412                 set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
2413
2414       CPACK_RPM_PACKAGE_REQUIRES_POST
2415
2416       CPACK_RPM_<component>_PACKAGE_REQUIRES_POST
2417              RPM spec requires(post) field.
2418
2419              · Mandatory : NO
2420
2421              · Default   : -
2422
2423              May    be    used    to   set   RPM   postinstall   dependencies
2424              (requires(post)).  Note  that  you  must  enclose  the  complete
2425              requires string between quotes, for example:
2426
2427                 set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
2428
2429       CPACK_RPM_PACKAGE_REQUIRES_POSTUN
2430
2431       CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN
2432              RPM spec requires(postun) field.
2433
2434              · Mandatory : NO
2435
2436              · Default   : -
2437
2438              May be used to set RPM postuninstall dependencies (requires(pos‐
2439              tun)). Note that you must enclose the complete  requires  string
2440              between quotes, for example:
2441
2442                 set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
2443
2444       CPACK_RPM_PACKAGE_REQUIRES_PREUN
2445
2446       CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN
2447              RPM spec requires(preun) field.
2448
2449              · Mandatory : NO
2450
2451              · Default   : -
2452
2453              May    be    used   to   set   RPM   preuninstall   dependencies
2454              (requires(preun)). Note  that  you  must  enclose  the  complete
2455              requires string between quotes, for example:
2456
2457                 set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
2458
2459       CPACK_RPM_PACKAGE_SUGGESTS
2460
2461       CPACK_RPM_<component>_PACKAGE_SUGGESTS
2462              RPM spec suggest field.
2463
2464              · Mandatory : NO
2465
2466              · Default   : -
2467
2468              May  be  used to set weak RPM dependencies (suggests). Note that
2469              you must enclose the complete requires string between quotes.
2470
2471       CPACK_RPM_PACKAGE_PROVIDES
2472
2473       CPACK_RPM_<component>_PACKAGE_PROVIDES
2474              RPM spec provides field.
2475
2476              · Mandatory : NO
2477
2478              · Default   : -
2479
2480              May be used to set RPM  dependencies  (provides).  The  provided
2481              package list of an RPM file could be printed with:
2482
2483                 rpm -qp --provides file.rpm
2484
2485       CPACK_RPM_PACKAGE_OBSOLETES
2486
2487       CPACK_RPM_<component>_PACKAGE_OBSOLETES
2488              RPM spec obsoletes field.
2489
2490              · Mandatory : NO
2491
2492              · Default   : -
2493
2494              May be used to set RPM packages that are obsoleted by this one.
2495
2496       CPACK_RPM_PACKAGE_RELOCATABLE
2497              build a relocatable RPM.
2498
2499              · Mandatory : NO
2500
2501              · Default   : CPACK_PACKAGE_RELOCATABLE
2502
2503              If  this  variable is set to TRUE or ON, the CPack RPM generator
2504              will try to build a relocatable RPM package. A  relocatable  RPM
2505              may be installed using:
2506
2507                 rpm --prefix or --relocate
2508
2509              in  order  to  install it at an alternate place see rpm(8). Note
2510              that currently this may fail if CPACK_SET_DESTDIR is set to  ON.
2511              If  CPACK_SET_DESTDIR is set then you will get a warning message
2512              but if there is file installed with  absolute  path  you’ll  get
2513              unexpected behavior.
2514
2515       CPACK_RPM_SPEC_INSTALL_POST
2516              Deprecated - use CPACK_RPM_SPEC_MORE_DEFINE instead.
2517
2518              · Mandatory : NO
2519
2520              · Default   : -
2521
2522              · Deprecated: YES
2523
2524              May  be  used to override the __spec_install_post section within
2525              the generated spec file.  This affects the install  step  during
2526              package  creation,  not during package installation.  For adding
2527              operations to be  performed  during  package  installation,  use
2528              CPACK_RPM_POST_INSTALL_SCRIPT_FILE instead.
2529
2530       CPACK_RPM_SPEC_MORE_DEFINE
2531              RPM extended spec definitions lines.
2532
2533              · Mandatory : NO
2534
2535              · Default   : -
2536
2537              May be used to add any %define lines to the generated spec file.
2538              An example of its use is to  prevent  stripping  of  executables
2539              (but  note that this may also disable other default post install
2540              processing):
2541
2542                 set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
2543
2544       CPACK_RPM_PACKAGE_DEBUG
2545              Toggle CPack RPM generator debug output.
2546
2547              · Mandatory : NO
2548
2549              · Default   : -
2550
2551              May be set when invoking cpack in order to trace debug  informa‐
2552              tion during CPack RPM run. For example you may launch CPack like
2553              this:
2554
2555                 cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
2556
2557       CPACK_RPM_USER_BINARY_SPECFILE
2558
2559       CPACK_RPM_<componentName>_USER_BINARY_SPECFILE
2560              A user provided spec file.
2561
2562              · Mandatory : NO
2563
2564              · Default   : -
2565
2566              May be set by the user in order to specify a  USER  binary  spec
2567              file to be used by the CPack RPM generator instead of generating
2568              the file.  The specified  file  will  be  processed  by  config‐
2569              ure_file( @ONLY).
2570
2571       CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
2572              Spec file template.
2573
2574              · Mandatory : NO
2575
2576              · Default   : -
2577
2578              If  set CPack will generate a template for USER specified binary
2579              spec file and stop with an error. For example launch CPack  like
2580              this:
2581
2582                 cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
2583
2584              The  user  may  then use this file in order to hand-craft is own
2585              binary    spec    file    which     may     be     used     with
2586              CPACK_RPM_USER_BINARY_SPECFILE.
2587
2588       CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
2589
2590       CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
2591
2592       CPACK_RPM_PRE_TRANS_SCRIPT_FILE
2593              Path   to   file  containing  pre  install/uninstall/transaction
2594              script.
2595
2596              · Mandatory : NO
2597
2598              · Default   : -
2599
2600              May be used to embed a pre  installation/uninstallation/transac‐
2601              tion  script  in  the  spec  file.  The referred script file (or
2602              both) will be read and directly put after  the  %pre  or  %preun
2603              section   If   CPACK_RPM_COMPONENT_INSTALL  is  set  to  ON  the
2604              install/uninstall/transaction script for each component  can  be
2605              overridden  with  CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE,
2606              CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE,             and
2607              CPACK_RPM_<COMPONENT>_PRE_TRANS_SCRIPT_FILE One may verify which
2608              scriptlet has been included with:
2609
2610                 rpm -qp --scripts  package.rpm
2611
2612       CPACK_RPM_POST_INSTALL_SCRIPT_FILE
2613
2614       CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
2615
2616       CPACK_RPM_POST_TRANS_SCRIPT_FILE
2617              Path  to  file  containing  post   install/uninstall/transaction
2618              script.
2619
2620              · Mandatory : NO
2621
2622              · Default   : -
2623
2624              May be used to embed a post installation/uninstallation/transac‐
2625              tion script in the spec file.   The  referred  script  file  (or
2626              both)  will  be read and directly put after the %post or %postun
2627              section.   If  CPACK_RPM_COMPONENT_INSTALL  is  set  to  ON  the
2628              install/uninstall/transaction  script  for each component can be
2629              overridden with  CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE,
2630              CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE,            and
2631              CPACK_RPM_<COMPONENT>_POST_TRANS_SCRIPT_FILE  One   may   verify
2632              which scriptlet has been included with:
2633
2634                 rpm -qp --scripts  package.rpm
2635
2636       CPACK_RPM_USER_FILELIST
2637
2638       CPACK_RPM_<COMPONENT>_USER_FILELIST
2639
2640              · Mandatory : NO
2641
2642              · Default   : -
2643
2644              May  be  used  to explicitly specify %(<directive>) file line in
2645              the spec file. Like %config(noreplace) or  any  other  directive
2646              that  be  found  in  the  %files  section. You can have multiple
2647              directives per line, as  in  %attr(600,root,root)  %config(nore‐
2648              place).  Since the CPack RPM generator is generating the list of
2649              files  (and  directories)  the  user  specified  files  of   the
2650              CPACK_RPM_<COMPONENT>_USER_FILELIST  list  will  be removed from
2651              the generated list. If referring to directories  do  not  add  a
2652              trailing slash.
2653
2654       CPACK_RPM_CHANGELOG_FILE
2655              RPM changelog file.
2656
2657              · Mandatory : NO
2658
2659              · Default   : -
2660
2661              May be used to embed a changelog in the spec file.  The referred
2662              file will be read and directly put after the %changelog section.
2663
2664       CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST
2665              list of path to be excluded.
2666
2667              · Mandatory : NO
2668
2669              ·
2670
2671                Default
2672                       /etc /etc/init.d /usr  /usr/bin  /usr/include  /usr/lib
2673                       /usr/libx32  /usr/lib64  /usr/share  /usr/share/aclocal
2674                       /usr/share/doc
2675
2676              May be used to exclude path  (directories  or  files)  from  the
2677              auto-generated  list  of  paths  discovered  by  CPack  RPM. The
2678              default value contains a reasonable set of values if  the  vari‐
2679              able  is  not defined by the user. If the variable is defined by
2680              the user then the CPack  RPM  generator  will  NOT  any  of  the
2681              default  path.  If you want to add some path to the default list
2682              then you can  use  CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
2683              variable.
2684
2685       CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
2686              additional list of path to be excluded.
2687
2688              · Mandatory : NO
2689
2690              · Default   : -
2691
2692              May be used to add more exclude path (directories or files) from
2693              the   initial   default   list   of    excluded    paths.    See
2694              CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST.
2695
2696       CPACK_RPM_RELOCATION_PATHS
2697              Packages relocation paths list.
2698
2699              · Mandatory : NO
2700
2701              · Default   : -
2702
2703              May  be  used to specify more than one relocation path per relo‐
2704              catable RPM.  Variable contains a list of relocation paths  that
2705              if     relative     are     prefixed    by    the    value    of
2706              CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX  or   by   the   value   of
2707              CPACK_PACKAGING_INSTALL_PREFIX  if  the component version is not
2708              provided.  Variable is not component based as its content can be
2709              used to set a different path prefix for e.g. binary dir and doc‐
2710              umentation dir  at  the  same  time.   Only  prefixes  that  are
2711              required  by  a  certain component are added to that component -
2712              component must contain at least one file/directory/symbolic link
2713              with  CPACK_RPM_RELOCATION_PATHS prefix for a certain relocation
2714              path to be added. Package will not contain any relocation  paths
2715              if  there  are no files/directories/symbolic links on any of the
2716              provided prefix locations.  Packages that either do not  contain
2717              any relocation paths or contain files/directories/symbolic links
2718              that are outside relocation paths print  out  an  AUTHOR_WARNING
2719              that RPM will be partially relocatable.
2720
2721       CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
2722              Per component relocation path install prefix.
2723
2724              · Mandatory : NO
2725
2726              · Default   : CPACK_PACKAGING_INSTALL_PREFIX
2727
2728              May  be used to set per component CPACK_PACKAGING_INSTALL_PREFIX
2729              for relocatable RPM packages.
2730
2731       CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION
2732
2733       CPACK_RPM_NO_<COMPONENT>_INSTALL_PREFIX_RELOCATION
2734              Removal of default install prefix from relocation paths list.
2735
2736              · Mandatory : NO
2737
2738              ·
2739
2740                Default
2741                       CPACK_PACKAGING_INSTALL_PREFIX   or   CPACK_RPM_<COMPO‐
2742                       NENT>_PACKAGE_PREFIX  are  treated as one of relocation
2743                       paths
2744
2745              May  be  used  to  remove   CPACK_PACKAGING_INSTALL_PREFIX   and
2746              CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX from relocatable RPM prefix
2747              paths.
2748
2749       CPACK_RPM_ADDITIONAL_MAN_DIRS
2750
2751              · Mandatory : NO
2752
2753              · Default   : -
2754
2755              May be used to set additional man dirs that could potentially be
2756              compressed by brp-compress RPM macro. Variable content must be a
2757              list of regular expressions that point to directories containing
2758              man  files  or to man files directly. Note that in order to com‐
2759              press man pages a path must also be present in brp-compress  RPM
2760              script and that brp-compress script must be added to RPM config‐
2761              uration by the operating system.
2762
2763              Regular expressions that are added by default  were  taken  from
2764              brp-compress RPM macro:
2765
2766              · /usr/man/man.*
2767
2768              · /usr/man/.*/man.*
2769
2770              · /usr/info.*
2771
2772              · /usr/share/man/man.*
2773
2774              · /usr/share/man/.*/man.*
2775
2776              · /usr/share/info.*
2777
2778              · /usr/kerberos/man.*
2779
2780              · /usr/X11R6/man/man.*
2781
2782              · /usr/lib/perl5/man/man.*
2783
2784              · /usr/share/doc/.*/man/man.*
2785
2786              · /usr/lib/.*/man/man.*
2787
2788       CPACK_RPM_DEFAULT_USER
2789
2790       CPACK_RPM_<compName>_DEFAULT_USER
2791              default user ownership of RPM content
2792
2793              · Mandatory : NO
2794
2795              · Default   : root
2796
2797              Value  should  be  user  name and not UID.  Note that <compName>
2798              must be in upper-case.
2799
2800       CPACK_RPM_DEFAULT_GROUP
2801
2802       CPACK_RPM_<compName>_DEFAULT_GROUP
2803              default group ownership of RPM content
2804
2805              · Mandatory : NO
2806
2807              · Default   : root
2808
2809              Value should be group name and not GID.   Note  that  <compName>
2810              must be in upper-case.
2811
2812       CPACK_RPM_DEFAULT_FILE_PERMISSIONS
2813
2814       CPACK_RPM_<compName>_DEFAULT_FILE_PERMISSIONS
2815              default permissions used for packaged files
2816
2817              · Mandatory : NO
2818
2819              · Default   : - (system default)
2820
2821              Accepted  values  are  lists with PERMISSIONS. Valid permissions
2822              are:
2823
2824              · OWNER_READ
2825
2826              · OWNER_WRITE
2827
2828              · OWNER_EXECUTE
2829
2830              · GROUP_READ
2831
2832              · GROUP_WRITE
2833
2834              · GROUP_EXECUTE
2835
2836              · WORLD_READ
2837
2838              · WORLD_WRITE
2839
2840              · WORLD_EXECUTE
2841
2842              Note that <compName> must be in upper-case.
2843
2844       CPACK_RPM_DEFAULT_DIR_PERMISSIONS
2845
2846       CPACK_RPM_<compName>_DEFAULT_DIR_PERMISSIONS
2847              default permissions used for packaged directories
2848
2849              · Mandatory : NO
2850
2851              · Default   : - (system default)
2852
2853              Accepted values are lists with  PERMISSIONS.  Valid  permissions
2854              are  the  same  as for CPACK_RPM_DEFAULT_FILE_PERMISSIONS.  Note
2855              that <compName> must be in upper-case.
2856
2857       CPACK_RPM_INSTALL_WITH_EXEC
2858              force execute permissions on programs and shared libraries
2859
2860              · Mandatory : NO
2861
2862              · Default   : - (system default)
2863
2864              Force set owner, group and world execute permissions on programs
2865              and  shared  libraries.  This can be used for creating valid rpm
2866              packages on systems such as Debian where shared libraries do not
2867              have execute permissions set.
2868
2869       NOTE:
2870          Programs  and  shared  libraries  without  execute  permissions  are
2871          ignored during separation of  debug  symbols  from  the  binary  for
2872          debuginfo packages.
2873
2874   Packaging of Symbolic Links
2875       The CPack RPM generator supports packaging of symbolic links:
2876
2877          execute_process(COMMAND ${CMAKE_COMMAND}
2878            -E create_symlink <relative_path_location> <symlink_name>)
2879          install(FILES ${CMAKE_CURRENT_BINARY_DIR}/<symlink_name>
2880            DESTINATION <symlink_location> COMPONENT libraries)
2881
2882       Symbolic  links will be optimized (paths will be shortened if possible)
2883       before being added to the package or if multiple relocation  paths  are
2884       detected, a post install symlink relocation script will be generated.
2885
2886       Symbolic links may point to locations that are not packaged by the same
2887       package (either a different component or even not packaged at all)  but
2888       those  locations  will be treated as if they were a part of the package
2889       while determining if symlink should be either created or present  in  a
2890       post install script - depending on relocation paths.
2891
2892       Symbolic links that point to locations outside packaging path produce a
2893       warning and are treated as non relocatable permanent symbolic links.
2894
2895       Currently there are a few limitations though:
2896
2897       · For  component  based  packaging  component  interdependency  is  not
2898         checked  when  processing  symbolic links. Symbolic links pointing to
2899         content of a different component are  treated  the  same  way  as  if
2900         pointing to location that will not be packaged.
2901
2902       · Symbolic  links pointing to a location through one or more intermedi‐
2903         ate symbolic links will not be handled differently - if the  interme‐
2904         diate  symbolic  link(s) is also on a relocatable path, relocating it
2905         during package installation may cause initial symbolic link to  point
2906         to an invalid location.
2907
2908   Packaging of debug information
2909       Debuginfo  packages  contain  debug  symbols  and sources for debugging
2910       packaged binaries.
2911
2912       Debuginfo RPM packaging has its own set of variables:
2913
2914       CPACK_RPM_DEBUGINFO_PACKAGE
2915
2916       CPACK_RPM_<component>_DEBUGINFO_PACKAGE
2917              Enable generation of debuginfo RPM package(s).
2918
2919              · Mandatory : NO
2920
2921              · Default   : OFF
2922
2923       NOTE:
2924          Binaries must contain debug symbols before packaging so  use  either
2925          Debug or RelWithDebInfo for CMAKE_BUILD_TYPE variable value.
2926
2927       NOTE:
2928          Packages  generated  from packages without binary files, with binary
2929          files but without execute permissions or without debug symbols  will
2930          cause packaging termination.
2931
2932       CPACK_BUILD_SOURCE_DIRS
2933              Provides  locations  of  root  directories  of source files from
2934              which binaries were built.
2935
2936              · Mandatory : YES if CPACK_RPM_DEBUGINFO_PACKAGE is set
2937
2938              · Default   : -
2939
2940       NOTE:
2941          For CMake project CPACK_BUILD_SOURCE_DIRS is set by default to point
2942          to CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR paths.
2943
2944       NOTE:
2945          Sources  with path prefixes that do not fall under any location pro‐
2946          vided with CPACK_BUILD_SOURCE_DIRS will not be present in  debuginfo
2947          package.
2948
2949       CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
2950
2951       CPACK_RPM_<component>_BUILD_SOURCE_DIRS_PREFIX
2952              Prefix  of  location where sources will be placed during package
2953              installation.
2954
2955              · Mandatory : YES if CPACK_RPM_DEBUGINFO_PACKAGE is set
2956
2957              ·
2958
2959                Default
2960                       “/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>” and for com‐
2961                       ponent      packaging      “/usr/src/debug/<CPACK_PACK‐
2962                       AGE_FILE_NAME>-<component>”
2963
2964       NOTE:
2965          Each source path prefix  is  additionally  suffixed  by  src_<index>
2966          where  index  is index of the path used from CPACK_BUILD_SOURCE_DIRS
2967          variable.    This     produces     <CPACK_RPM_BUILD_SOURCE_DIRS_PRE‐
2968          FIX>/src_<index> replacement path.  Limitation is that replaced path
2969          part must be shorter or of equal  length  than  the  length  of  its
2970          replacement.     If     that     is     not    the    case    either
2971          CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX variable  has  to  be  set  to  a
2972          shorter path or source directories must be placed on a longer path.
2973
2974       CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS
2975              Directories  containing  sources  that  should  be excluded from
2976              debuginfo packages.
2977
2978              · Mandatory : NO
2979
2980              · Default   : “/usr /usr/src /usr/src/debug”
2981
2982              Listed paths are owned by other RPM packages and  should  there‐
2983              fore not be deleted on debuginfo package uninstallation.
2984
2985       CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION
2986              Paths        that        should       be       appended       to
2987              CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS for exclusion.
2988
2989              · Mandatory : NO
2990
2991              · Default   : -
2992
2993       CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE
2994              Create a single debuginfo package even if  components  packaging
2995              is set.
2996
2997              · Mandatory : NO
2998
2999              · Default   : OFF
3000
3001              When  this  variable  is  enabled it produces a single debuginfo
3002              package even if component packaging is enabled.
3003
3004              When using this feature in combination with components packaging
3005              and  there  is  more  than  one component this variable requires
3006              CPACK_RPM_MAIN_COMPONENT to be set.
3007
3008       NOTE:
3009          If none of the CPACK_RPM_<component>_DEBUGINFO_PACKAGE variables  is
3010          set then CPACK_RPM_DEBUGINFO_PACKAGE is automatically set to ON when
3011          CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE is set.
3012
3013       CPACK_RPM_DEBUGINFO_FILE_NAME
3014
3015       CPACK_RPM_<component>_DEBUGINFO_FILE_NAME
3016              Debuginfo package file name.
3017
3018              · Mandatory : NO
3019
3020              · Default   : rpmbuild tool generated package file name
3021
3022              Alternatively provided debuginfo package file name must end with
3023              .rpm suffix and should differ from file names of other generated
3024              packages.
3025
3026              Variable may contain @cpack_component@ placeholder which will be
3027              replaced  by  component  name  if component packaging is enabled
3028              otherwise it deletes the placeholder.
3029
3030              Setting the variable to RPM-DEFAULT may be  used  to  explicitly
3031              set filename generation to default.
3032
3033       NOTE:
3034          CPACK_RPM_FILE_NAME  also  supports  rpmbuild tool generated package
3035          file name - disabled by default but can be enabled  by  setting  the
3036          variable to RPM-DEFAULT.
3037
3038   Packaging of sources (SRPM)
3039       SRPM packaging is enabled by setting CPACK_RPM_PACKAGE_SOURCES variable
3040       while usually using  CPACK_INSTALLED_DIRECTORIES  variable  to  provide
3041       directory containing CMakeLists.txt and source files.
3042
3043       For CMake projects SRPM package would be produced by executing:
3044
3045          cpack -G RPM --config ./CPackSourceConfig.cmake
3046
3047       NOTE:
3048          Produced  SRPM  package  is  expected to be built with cmake(1) exe‐
3049          cutable and packaged with cpack(1) executable so CMakeLists.txt  has
3050          to  be located in root source directory and must be able to generate
3051          binary rpm packages by executing cpack -G command. The two  executa‐
3052          bles as well as rpmbuild must also be present when generating binary
3053          rpm packages from the produced SRPM package.
3054
3055       Once the SRPM package is generated it can be used  to  generate  binary
3056       packages  by creating a directory structure for rpm generation and exe‐
3057       cuting rpmbuild tool:
3058
3059          mkdir -p build_dir/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
3060          rpmbuild --define "_topdir <path_to_build_dir>" --rebuild <SRPM_file_name>
3061
3062       Generated packages will be located in build_dir/RPMS directory  or  its
3063       sub directories.
3064
3065       NOTE:
3066          SRPM  package internally uses CPack/RPM generator to generate binary
3067          packages so CMakeScripts.txt can decide during the  SRPM  to  binary
3068          rpm  generation step what content the package(s) should have as well
3069          as how they should be packaged (monolithic or components). CMake can
3070          decide  this  for  e.g.  by reading environment variables set by the
3071          package manager before starting the process of generating binary rpm
3072          packages. This way a single SRPM package can be used to produce dif‐
3073          ferent binary rpm packages on different platforms depending  on  the
3074          platform’s packaging rules.
3075
3076       Source RPM packaging has its own set of variables:
3077
3078       CPACK_RPM_PACKAGE_SOURCES
3079              Should  the  content  be  packaged  as  a source rpm (default is
3080              binary rpm).
3081
3082              · Mandatory : NO
3083
3084              · Default   : OFF
3085
3086       NOTE:
3087          For cmake projects CPACK_RPM_PACKAGE_SOURCES variable is set to  OFF
3088          in  CPackConfig.cmake  and  ON  in CPackSourceConfig.cmake generated
3089          files.
3090
3091       CPACK_RPM_SOURCE_PKG_BUILD_PARAMS
3092              Additional command-line parameters  provided  to  cmake(1)  exe‐
3093              cutable.
3094
3095              · Mandatory : NO
3096
3097              · Default   : -
3098
3099       CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX
3100              Packaging install prefix that would be provided in CPACK_PACKAG‐
3101              ING_INSTALL_PREFIX variable for producing binary RPM packages.
3102
3103              · Mandatory : YES
3104
3105              · Default   : “/”
3106
3107       CPACK_RPM_BUILDREQUIRES
3108              List of source rpm build dependencies.
3109
3110              · Mandatory : NO
3111
3112              · Default   : -
3113
3114              May  be  used  to  set  source  RPM  build  dependencies  (Buil‐
3115              dRequires).  Note  that  you  must  enclose  the  complete build
3116              requirements string between quotes, for example:
3117
3118                 set(CPACK_RPM_BUILDREQUIRES "python >= 2.5.0, cmake >= 2.8")
3119
3120   CPack WIX Generator
3121       CPack WIX generator specific options
3122
3123   Variables specific to CPack WIX generator
3124       The following variables are specific to the installers built on Windows
3125       using WiX.
3126
3127       CPACK_WIX_UPGRADE_GUID
3128              Upgrade GUID (Product/@UpgradeCode)
3129
3130              Will be automatically generated unless explicitly provided.
3131
3132              It  should  be  explicitly  set to a constant generated globally
3133              unique identifier (GUID) to allow  your  installers  to  replace
3134              existing installations that use the same GUID.
3135
3136              You  may for example explicitly set this variable in your CMake‐
3137              Lists.txt to the value that has been generated per default.  You
3138              should not use GUIDs that you did not generate yourself or which
3139              may belong to other projects.
3140
3141              A GUID shall have the following fixed length syntax:
3142
3143                 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
3144
3145              (each X represents an uppercase hexadecimal digit)
3146
3147       CPACK_WIX_PRODUCT_GUID
3148              Product GUID (Product/@Id)
3149
3150              Will be automatically generated unless explicitly provided.
3151
3152              If explicitly provided this will set the Product Id of your  in‐
3153              staller.
3154
3155              The  installer will abort if it detects a pre-existing installa‐
3156              tion that uses the same GUID.
3157
3158              The    GUID    shall    use    the    syntax    described    for
3159              CPACK_WIX_UPGRADE_GUID.
3160
3161       CPACK_WIX_LICENSE_RTF
3162              RTF License File
3163
3164              If  CPACK_RESOURCE_FILE_LICENSE has an .rtf extension it is used
3165              as-is.
3166
3167              If CPACK_RESOURCE_FILE_LICENSE  has  an  .txt  extension  it  is
3168              implicitly  converted to RTF by the WIX Generator.  The expected
3169              encoding of the .txt file is UTF-8.
3170
3171              With CPACK_WIX_LICENSE_RTF you can  override  the  license  file
3172              used by the WIX Generator in case CPACK_RESOURCE_FILE_LICENSE is
3173              in an unsupported format or the .txt -> .rtf conversion does not
3174              work as expected.
3175
3176       CPACK_WIX_PRODUCT_ICON
3177              The Icon shown next to the program name in Add/Remove programs.
3178
3179              If set, this icon is used in place of the default icon.
3180
3181       CPACK_WIX_UI_REF
3182              This  variable allows you to override the Id of the <UIRef> ele‐
3183              ment in the WiX template.
3184
3185              The default is WixUI_InstallDir in case no CPack components have
3186              been defined and WixUI_FeatureTree otherwise.
3187
3188       CPACK_WIX_UI_BANNER
3189              The  bitmap  will appear at the top of all installer pages other
3190              than the welcome and completion dialogs.
3191
3192              If set, this image will replace the default banner image.
3193
3194              This image must be 493 by 58 pixels.
3195
3196       CPACK_WIX_UI_DIALOG
3197              Background bitmap used on the welcome and completion dialogs.
3198
3199              If this variable is set, the installer will replace the  default
3200              dialog image.
3201
3202              This image must be 493 by 312 pixels.
3203
3204       CPACK_WIX_PROGRAM_MENU_FOLDER
3205              Start menu folder name for launcher.
3206
3207              If  this  variable  is  not  set,  it  will  be initialized with
3208              CPACK_PACKAGE_NAME
3209
3210              If this variable is set to ., then application shortcuts will be
3211              created  directly in the start menu and the uninstaller shortcut
3212              will be omitted.
3213
3214       CPACK_WIX_CULTURES
3215              Language(s) of the installer
3216
3217              Languages are compiled into the WixUI extension library.  To use
3218              them,  simply  provide  the name of the culture.  If you specify
3219              more than one culture identifier in a comma or semicolon  delim‐
3220              ited  list,  the  first one that is found will be used.  You can
3221              find     a     list     of     supported      languages      at:
3222              http://wix.sourceforge.net/manual-wix3/WixUI_localization.htm
3223
3224       CPACK_WIX_TEMPLATE
3225              Template file for WiX generation
3226
3227              If  this variable is set, the specified template will be used to
3228              generate the WiX wxs file.  This should be used if further  cus‐
3229              tomization of the output is required.
3230
3231              If  this  variable is not set, the default MSI template included
3232              with CMake will be used.
3233
3234       CPACK_WIX_PATCH_FILE
3235              Optional list of XML files with fragments to  be  inserted  into
3236              generated WiX sources
3237
3238              This  optional  variable can be used to specify an XML file that
3239              the WIX generator will use to inject fragments into  its  gener‐
3240              ated source files.
3241
3242              Patch files understood by the CPack WIX generator roughly follow
3243              this RELAX NG compact schema:
3244
3245                 start = CPackWiXPatch
3246
3247                 CPackWiXPatch = element CPackWiXPatch { CPackWiXFragment* }
3248
3249                 CPackWiXFragment = element CPackWiXFragment
3250                 {
3251                     attribute Id { string },
3252                     fragmentContent*
3253                 }
3254
3255                 fragmentContent = element * - CPackWiXFragment
3256                 {
3257                     (attribute * { text } | text | fragmentContent)*
3258                 }
3259
3260              Currently fragments can be injected into most  Component,  File,
3261              Directory and Feature elements.
3262
3263              The following additional special Ids can be used:
3264
3265              · #PRODUCT for the <Product> element.
3266
3267              · #PRODUCTFEATURE for the root <Feature> element.
3268
3269              The following example illustrates how this works.
3270
3271              Given that the WIX generator creates the following XML element:
3272
3273                 <Component Id="CM_CP_applications.bin.my_libapp.exe" Guid="*"/>
3274
3275              The  following  XML patch file may be used to inject an Environ‐
3276              ment element into it:
3277
3278                 <CPackWiXPatch>
3279                   <CPackWiXFragment Id="CM_CP_applications.bin.my_libapp.exe">
3280                     <Environment Id="MyEnvironment" Action="set"
3281                       Name="MyVariableName" Value="MyVariableValue"/>
3282                   </CPackWiXFragment>
3283                 </CPackWiXPatch>
3284
3285       CPACK_WIX_EXTRA_SOURCES
3286              Extra WiX source files
3287
3288              This variable provides an optional  list  of  extra  WiX  source
3289              files  (.wxs) that should be compiled and linked.  The full path
3290              to source files is required.
3291
3292       CPACK_WIX_EXTRA_OBJECTS
3293              Extra WiX object files or libraries
3294
3295              This variable provides an optional  list  of  extra  WiX  object
3296              (.wixobj)  and/or WiX library (.wixlib) files.  The full path to
3297              objects and libraries is required.
3298
3299       CPACK_WIX_EXTENSIONS
3300              This variable provides a list of additional extensions  for  the
3301              WiX tools light and candle.
3302
3303       CPACK_WIX_<TOOL>_EXTENSIONS
3304              This  is  the  tool  specific  version  of CPACK_WIX_EXTENSIONS.
3305              <TOOL> can be either LIGHT or CANDLE.
3306
3307       CPACK_WIX_<TOOL>_EXTRA_FLAGS
3308              This list variable allows you to pass additional  flags  to  the
3309              WiX tool <TOOL>.
3310
3311              Use  it at your own risk.  Future versions of CPack may generate
3312              flags which may be in conflict with your own flags.
3313
3314              <TOOL> can be either LIGHT or CANDLE.
3315
3316       CPACK_WIX_CMAKE_PACKAGE_REGISTRY
3317              If this variable is set the generated installer will  create  an
3318              entry  in  the  windows  registry  key  HKEY_LOCAL_MACHINE\Soft‐
3319              ware\Kitware\CMake\Packages\<PackageName> The value for  <Packa‐
3320              geName> is provided by this variable.
3321
3322              Assuming  you  also install a CMake configuration file this will
3323              allow other  CMake  projects  to  find  your  package  with  the
3324              find_package() command.
3325
3326       CPACK_WIX_PROPERTY_<PROPERTY>
3327              This variable can be used to provide a value for the Windows In‐
3328              staller property <PROPERTY>
3329
3330              The following list contains some example properties that can  be
3331              used  to  customize  information  under  “Programs and Features”
3332              (also known as “Add or Remove Programs”)
3333
3334              · ARPCOMMENTS - Comments
3335
3336              · ARPHELPLINK - Help and support information URL
3337
3338              · ARPURLINFOABOUT - General information URL
3339
3340              · ARPURLUPDATEINFO - Update information URL
3341
3342              · ARPHELPTELEPHONE - Help and support telephone number
3343
3344              · ARPSIZE - Size (in kilobytes) of the application
3345
3346       CPACK_WIX_ROOT_FEATURE_TITLE
3347              Sets the name of the root install feature in the WIX  installer.
3348              Same as CPACK_COMPONENT_<compName>_DISPLAY_NAME for components.
3349
3350       CPACK_WIX_ROOT_FEATURE_DESCRIPTION
3351              Sets  the description of the root install feature in the WIX in‐
3352              staller. Same as CPACK_COMPONENT_<compName>_DESCRIPTION for com‐
3353              ponents.
3354
3355       CPACK_WIX_SKIP_PROGRAM_FOLDER
3356              If this variable is set to true, the default install location of
3357              the generated package  will  be  CPACK_PACKAGE_INSTALL_DIRECTORY
3358              directly.   The  install location will not be located relatively
3359              below ProgramFiles or ProgramFiles64.
3360
3361                 NOTE:
3362                     Installers created with this feature do not take  differ‐
3363                     ences  between  the system on which the installer is cre‐
3364                     ated and the system on which the installer might be  used
3365                     into account.
3366
3367                     It  is  therefore  possible that the installer e.g. might
3368                     try to install onto a drive that is unavailable or  unin‐
3369                     tended or a path that does not follow the localization or
3370                     convention of the system on  which  the  installation  is
3371                     performed.
3372
3373       CPACK_WIX_ROOT_FOLDER_ID
3374              This  variable  allows specification of a custom root folder ID.
3375              The generator specific <64> token can be  used  for  folder  IDs
3376              that  come  in 32-bit and 64-bit variants.  In 32-bit builds the
3377              token will expand empty while in 64-bit builds it will expand to
3378              64.
3379
3380              When  unset generated installers will default installing to Pro‐
3381              gramFiles<64>Folder.
3382
3383       CPACK_WIX_ROOT
3384              This variable can optionally be set to the root directory  of  a
3385              custom WiX Toolset installation.
3386
3387              When  unspecified CPack will try to locate a WiX Toolset instal‐
3388              lation via the WIX environment variable instead.
3389
3390       CPACK_WIX_CUSTOM_XMLNS
3391              This variable provides a list of custom  namespace  declarations
3392              that  are  necessary  for using WiX extensions. Each declaration
3393              should be in the form name=url, where name is the  plain  names‐
3394              pace  without  the  usual  xmlns:  prefix and url is an unquoted
3395              namespace url. A list of commonly  known  WiX  schemata  can  be
3396              found here: https://wixtoolset.org/documentation/manual/v3/xsd/
3397
3399       2000-2021 Kitware, Inc. and Contributors
3400
3401
3402
3403
34043.19.7                           Mar 15, 2021              CPACK-GENERATORS(7)
Impressum