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       New in version 3.1: 7Z and TXZ formats support.
28
29
30       New in version 3.16: TZST format support.
31
32
33       When this generator is called from CPackSourceConfig.cmake (or  through
34       the package_source target), then the generated archive will contain all
35       files  in  the   project   directory,   except   those   specified   in
36       CPACK_SOURCE_IGNORE_FILES.   The  following is one example of packaging
37       all source files of a project:
38
39          set(CPACK_SOURCE_GENERATOR "TGZ")
40          set(CPACK_SOURCE_IGNORE_FILES
41            \\.git/
42            build/
43            ".*~$"
44          )
45          set(CPACK_VERBATIM_VARIABLES YES)
46          include(CPack)
47
48       When this generator is called from CPackConfig.cmake  (or  through  the
49       package target), then the generated archive will contain all files that
50       have been installed via CMake's install() command (and  the  deprecated
51       commands install_files(), install_programs(), and install_targets()).
52
53   Variables specific to CPack Archive generator
54       CPACK_ARCHIVE_FILE_NAME
55
56       CPACK_ARCHIVE_<component>_FILE_NAME
57              Package file name without extension.
58
59              Default
60                     The  default  is <CPACK_PACKAGE_FILE_NAME>[-<component>],
61                     with spaces replaced by '-'.
62
63              The extension is determined from the archive  format  (see  list
64              above)  and  automatically  appended to the file name. Note that
65              <component> is all uppercase in the variable name.
66
67              New  in   version   3.9:   Per-component   CPACK_ARCHIVE_<compo‐
68              nent>_FILE_NAME variables.
69
70
71       CPACK_ARCHIVE_FILE_EXTENSION
72              New in version 3.25.
73
74
75              Package file extension.
76
77              Default
78                     Default values are given in the list above.
79
80       CPACK_ARCHIVE_COMPONENT_INSTALL
81              Enable component packaging.
82
83              Default
84                     OFF
85
86              If  enabled  (ON)  multiple packages are generated. By default a
87              single package containing files of all components is generated.
88
89   Variables used by CPack Archive generator
90       These variables are used by the Archive generator, but are also  avail‐
91       able  to CPack generators which are essentially archives at their core.
92       These include:
93
94CPack Cygwin Generator
95
96CPack FreeBSD Generator
97
98       CPACK_ARCHIVE_THREADS
99              The number of threads to use when performing the compression.
100
101              New in version 3.18.
102
103
104              Default
105                     1
106
107              If set to 0, the number of available cores on the  machine  will
108              be used instead.  The default is 1 which limits compression to a
109              single thread. Note  that  not  all  compression  modes  support
110              threading  in  all environments. Currently, only the XZ compres‐
111              sion may support it.
112
113              See also the CPACK_THREADS variable.
114
115              New in  version  3.21:  Official  CMake  binaries  available  on
116              cmake.org  now  ship  with a liblzma that supports parallel com‐
117              pression.  Older versions did not.
118
119
120   CPack Bundle Generator
121       CPack Bundle generator (macOS) specific options
122
123   Variables specific to CPack Bundle generator
124       Installers built on macOS using the Bundle generator use the  aforemen‐
125       tioned  DragNDrop  (CPACK_DMG_xxx)  variables,  plus the following Bun‐
126       dle-specific parameters (CPACK_BUNDLE_xxx).
127
128       CPACK_BUNDLE_NAME
129              The name of the generated bundle.  This  appears  in  the  macOS
130              Finder as the bundle name. Required.
131
132       CPACK_BUNDLE_PLIST
133              Path  to  an macOS Property List (.plist) file that will be used
134              for the generated bundle. This assumes that the caller has  gen‐
135              erated or specified their own Info.plist file. Required.
136
137       CPACK_BUNDLE_ICON
138              Path to an macOS icon file that will be used as the icon for the
139              generated bundle. This is the icon that  appears  in  the  macOS
140              Finder  for the bundle, and in the macOS dock when the bundle is
141              opened. Required.
142
143       CPACK_BUNDLE_STARTUP_COMMAND
144              Path to a startup script. This is a path  to  an  executable  or
145              script  that  will be run whenever an end-user double-clicks the
146              generated bundle in the macOS Finder. Optional.
147
148       CPACK_BUNDLE_APPLE_CERT_APP
149              New in version 3.2.
150
151
152              The name of your Apple supplied code signing certificate for the
153              application.   The  name usually takes the form Developer ID Ap‐
154              plication:  [Name]  or  3rd  Party  Mac  Developer  Application:
155              [Name].  If this variable is not set the application will not be
156              signed.
157
158       CPACK_BUNDLE_APPLE_ENTITLEMENTS
159              New in version 3.2.
160
161
162              The name of the Property List (.plist) file that  contains  your
163              Apple entitlements for sandboxing your application. This file is
164              required for submission to the macOS App Store.
165
166       CPACK_BUNDLE_APPLE_CODESIGN_FILES
167              New in version 3.2.
168
169
170              A list of additional files that you wish to be  signed.  You  do
171              not  need  to list the main application folder, or the main exe‐
172              cutable. You should list any frameworks and plugins that are in‐
173              cluded in your app bundle.
174
175       CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER
176              New in version 3.3.
177
178
179              Additional  parameter  that  will  passed  to codesign.  Default
180              value: --deep -f
181
182       CPACK_COMMAND_CODESIGN
183              New in version 3.2.
184
185
186              Path to the codesign(1) command used to sign  applications  with
187              an  Apple  cert. This variable can be used to override the auto‐
188              matically detected command  (or  specify  its  location  if  the
189              auto-detection fails to find it).
190
191   CPack Cygwin Generator
192       Cygwin CPack generator (Cygwin).
193
194   Variables affecting the CPack Cygwin generator
195       • New in version 3.18: CPACK_ARCHIVE_THREADS
196
197
198   Variables specific to CPack Cygwin generator
199       The  following  variable  is specific to installers build on and/or for
200       Cygwin:
201
202       CPACK_CYGWIN_PATCH_NUMBER
203              The Cygwin patch number.  FIXME: This  documentation  is  incom‐
204              plete.
205
206       CPACK_CYGWIN_PATCH_FILE
207              The Cygwin patch file.  FIXME: This documentation is incomplete.
208
209       CPACK_CYGWIN_BUILD_SCRIPT
210              The  Cygwin  build  script.  FIXME: This documentation is incom‐
211              plete.
212
213   CPack DEB Generator
214       The built in (binary) CPack DEB generator (Unix only)
215
216   Variables specific to CPack Debian (DEB) generator
217       The CPack DEB generator may be used to create DEB package using  CPack.
218       The CPack DEB generator is a CPack generator thus it uses the CPACK_XXX
219       variables used by CPack.
220
221       The CPack DEB generator should work on any Linux host but it will  pro‐
222       duce  better deb package when Debian specific tools dpkg-xxx are usable
223       on the build system.
224
225       The CPack DEB generator has specific features which are  controlled  by
226       the specifics CPACK_DEBIAN_XXX variables.
227
228       CPACK_DEBIAN_<COMPONENT>_XXXX  variables  may  be used in order to have
229       component specific values.  Note however that <COMPONENT> refers to the
230       grouping  name written in upper case. It may be either a component name
231       or a component GROUP name.
232
233       Here are some CPack DEB generator wiki resources that are here for his‐
234       toric reasons and are no longer maintained but may still prove useful:
235
236https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
237
238https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#deb-unix-only
239
240       List of CPack DEB generator specific variables:
241
242       CPACK_DEB_COMPONENT_INSTALL
243              Enable component packaging for CPackDEB
244
245              Mandatory
246                     No
247
248              Default
249                     OFF
250
251              If  enabled  (ON)  multiple packages are generated. By default a
252              single package containing files of all components is generated.
253
254       CPACK_DEBIAN_PACKAGE_NAME
255
256       CPACK_DEBIAN_<COMPONENT>_PACKAGE_NAME
257              Set Package control field (variable is automatically transformed
258              to lower case).
259
260              Mandatory
261                     Yes
262
263              Default
264
265CPACK_PACKAGE_NAME  for  non-component  based installa‐
266                       tions
267
268CPACK_DEBIAN_PACKAGE_NAME  suffixed  with  -<COMPONENT>
269                       for component-based installations.
270
271              New in version 3.5: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
272              AGE_NAME variables.
273
274
275              See
276              https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-source
277
278       CPACK_DEBIAN_FILE_NAME
279
280       CPACK_DEBIAN_<COMPONENT>_FILE_NAME
281              New in version 3.6.
282
283
284              Package file name.
285
286              Mandatory
287                     Yes
288
289              Default
290                     <CPACK_PACKAGE_FILE_NAME>[-<component>].deb
291
292              This may be set to DEB-DEFAULT to allow the CPack DEB  generator
293              to generate package file name by itself in deb format:
294
295                 <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
296
297              Alternatively  provided  package  file name must end with either
298              .deb or .ipk suffix.
299
300              New in version 3.10: .ipk suffix used by OPKG packaging system.
301
302
303              NOTE:
304                 Preferred setting of this variable  is  DEB-DEFAULT  but  for
305                 backward  compatibility with the CPack DEB generator in CMake
306                 prior to version 3.6 this feature is disabled by default.
307
308              NOTE:
309                 By using non default filenames duplicate names may occur. Du‐
310                 plicate files get overwritten and it is up to the packager to
311                 set the variables in a manner that will prevent such errors.
312
313       CPACK_DEBIAN_PACKAGE_EPOCH
314              New in version 3.10.
315
316
317              The Debian package epoch
318
319              Mandatory
320                     No
321
322              Default
323                     None
324
325              Optional number that should be incremented  when  changing  ver‐
326              sioning  schemas  or  fixing  mistakes in the version numbers of
327              older packages.
328
329       CPACK_DEBIAN_PACKAGE_VERSION
330              The Debian package version
331
332              Mandatory
333                     Yes
334
335              Default
336                     CPACK_PACKAGE_VERSION
337
338              This variable may contain only alphanumerics (A-Za-z0-9) and the
339              characters  .  + - ~ (full stop, plus, hyphen, tilde) and should
340              start with a digit. If CPACK_DEBIAN_PACKAGE_RELEASE is  not  set
341              then hyphens are not allowed.
342
343              NOTE:
344                 For  backward compatibility with CMake 3.9 and lower a failed
345                 test of this variable's content is not a hard error when both
346                 CPACK_DEBIAN_PACKAGE_RELEASE  and  CPACK_DEBIAN_PACKAGE_EPOCH
347                 variables are not set. An author warning is reported instead.
348
349       CPACK_DEBIAN_PACKAGE_RELEASE
350              New in version 3.6.
351
352
353              The Debian package release - Debian revision number.
354
355              Mandatory
356                     No
357
358              Default
359                     None
360
361              This is the numbering of the DEB package itself, i.e.  the  ver‐
362              sion  of  the  packaging and not the version of the content (see
363              CPACK_DEBIAN_PACKAGE_VERSION). One may change the default  value
364              if  the previous packaging was buggy and/or you want to put here
365              a fancy Linux distro specific numbering.
366
367       CPACK_DEBIAN_PACKAGE_ARCHITECTURE
368
369       CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE
370              The Debian package architecture
371
372              Mandatory
373                     Yes
374
375              Default
376                     Output of dpkg --print-architecture (or i386 if  dpkg  is
377                     not found)
378
379              New in version 3.6: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
380              AGE_ARCHITECTURE variables.
381
382
383       CPACK_DEBIAN_PACKAGE_DEPENDS
384
385       CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS
386              Sets the Debian dependencies of this package.
387
388              Mandatory
389                     No
390
391              Default
392
393                     • An empty string for non-component based installations
394
395CPACK_DEBIAN_PACKAGE_DEPENDS  for  component-based  in‐
396                       stallations.
397
398              New in version 3.3: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
399              AGE_DEPENDS variables.
400
401
402              NOTE:
403                 If  CPACK_DEBIAN_PACKAGE_SHLIBDEPS   or   more   specifically
404                 CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS  is  set  for this
405                 component, the discovered dependencies will  be  appended  to
406                 CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS      instead      of
407                 CPACK_DEBIAN_PACKAGE_DEPENDS.                              If
408                 CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS  is an empty string,
409                 only the automatically discovered dependencies  will  be  set
410                 for this component.
411
412              Example:
413
414                 set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libc6 (< 2.4)")
415
416       CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS
417              New in version 3.6.
418
419
420              Sets     inter-component    dependencies    if    listed    with
421              CPACK_COMPONENT_<compName>_DEPENDS variables.
422
423              Mandatory
424                     No
425
426              Default
427                     None
428
429       CPACK_DEBIAN_PACKAGE_MAINTAINER
430              The Debian package maintainer
431
432              Mandatory
433                     Yes
434
435              Default
436                     CPACK_PACKAGE_CONTACT
437
438       CPACK_DEBIAN_PACKAGE_DESCRIPTION
439
440       CPACK_DEBIAN_<COMPONENT>_DESCRIPTION
441              The Debian package description
442
443              Mandatory
444                     Yes
445
446              Default
447
448CPACK_DEBIAN_<COMPONENT>_DESCRIPTION  (component  based
449                       installers        only)        if        set,        or
450                       CPACK_DEBIAN_PACKAGE_DESCRIPTION if set, or
451
452CPACK_COMPONENT_<compName>_DESCRIPTION (component based
453                       installers  only)  if set, or CPACK_PACKAGE_DESCRIPTION
454                       if set, or
455
456                     • content     of     the      file      specified      in
457                       CPACK_PACKAGE_DESCRIPTION_FILE if set
458
459              If      after      that      description     is     not     set,
460              CPACK_PACKAGE_DESCRIPTION_SUMMARY going to be used if set.  Oth‐
461              erwise,  CPACK_PACKAGE_DESCRIPTION_SUMMARY  will be added as the
462              first line of description as defined in Debian Policy Manual.
463
464              New in version 3.3: Per-component CPACK_COMPONENT_<compName>_DE‐
465              SCRIPTION variables.
466
467
468              New  in version 3.16: Per-component CPACK_DEBIAN_<COMPONENT>_DE‐
469              SCRIPTION variables.
470
471
472              New in version 3.16:  The  CPACK_PACKAGE_DESCRIPTION_FILE  vari‐
473              able.
474
475
476       CPACK_DEBIAN_PACKAGE_SECTION
477
478       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION
479              Set Section control field e.g. admin, devel, doc, ...
480
481              Mandatory
482                     Yes
483
484              Default
485                     devel
486
487              New in version 3.5: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
488              AGE_SECTION variables.
489
490
491              See
492              https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections
493
494       CPACK_DEBIAN_ARCHIVE_TYPE
495              New in version 3.7.
496
497
498              Deprecated since version 3.14.
499
500
501              The archive format used for creating the Debian package.
502
503              Mandatory
504                     Yes
505
506              Default
507                     gnutar
508
509              Possible value is: gnutar
510
511              NOTE:
512                 This variable previously defaulted to  the  paxr  value,  but
513                 dpkg  has never supported that tar format. For backwards com‐
514                 patibility the paxr value will be mapped to gnutar and a dep‐
515                 recation message will be emitted.
516
517       CPACK_DEBIAN_COMPRESSION_TYPE
518              New in version 3.1.
519
520
521              The compression used for creating the Debian package.
522
523              Mandatory
524                     Yes
525
526              Default
527                     gzip
528
529              Possible values are:
530
531                 lzma   Lempel–Ziv–Markov chain algorithm
532
533                 xz     XZ Utils compression
534
535                 bzip2  bzip2 Burrows–Wheeler algorithm
536
537                 gzip   GNU Gzip compression
538
539                 zstd   New in version 3.22.
540
541
542                        Zstandard compression
543
544       CPACK_DEBIAN_PACKAGE_PRIORITY
545
546       CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY
547              Set  Priority  control field e.g. required, important, standard,
548              optional, extra
549
550              Mandatory
551                     Yes
552
553              Default
554                     optional
555
556              New in version 3.5: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
557              AGE_PRIORITY variables.
558
559
560              See
561              https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities
562
563       CPACK_DEBIAN_PACKAGE_HOMEPAGE
564              The  URL  of the web site for this package, preferably (when ap‐
565              plicable) the site from which the original  source  can  be  ob‐
566              tained  and any additional upstream documentation or information
567              may be found.
568
569              Mandatory
570                     No
571
572              Default
573                     CMAKE_PROJECT_HOMEPAGE_URL
574
575              New in version 3.12: The CMAKE_PROJECT_HOMEPAGE_URL variable.
576
577
578              NOTE:
579                 The content of this field is a simple URL  without  any  sur‐
580                 rounding characters such as <>.
581
582       CPACK_DEBIAN_PACKAGE_SHLIBDEPS
583
584       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS
585              May be set to ON in order to use dpkg-shlibdeps to generate bet‐
586              ter package dependency list.
587
588              Mandatory
589                     No
590
591              Default
592
593CPACK_DEBIAN_PACKAGE_SHLIBDEPS if set or
594
595OFF
596
597              NOTE:
598                 You may need set CMAKE_INSTALL_RPATH to an appropriate  value
599                 if  you use this feature, because if you don't dpkg-shlibdeps
600                 may   fail   to   find   your   own   shared    libs.     See
601                 https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
602
603              NOTE:
604                 You can also set  CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS
605                 to  an appropriate value if you use this feature, in order to
606                 please dpkg-shlibdeps. However, you should only do  this  for
607                 private  shared  libraries that could not get resolved other‐
608                 wise.
609
610              New in version 3.3: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
611              AGE_SHLIBDEPS variables.
612
613
614              New   in   version   3.6:   Correct   handling   of  $ORIGIN  in
615              CMAKE_INSTALL_RPATH.
616
617
618       CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS
619              New in version 3.20.
620
621
622              May be set to a list  of  directories  that  will  be  given  to
623              dpkg-shlibdeps  via  its  -l  option.  These will be searched by
624              dpkg-shlibdeps in order to find private shared library dependen‐
625              cies.
626
627              Mandatory
628                     No
629
630              Default
631                     None
632
633              NOTE:
634                 You  should prefer to set CMAKE_INSTALL_RPATH to an appropri‐
635                 ate value if you use dpkg-shlibdeps. The  current  option  is
636                 really only needed for private shared library dependencies.
637
638       CPACK_DEBIAN_PACKAGE_DEBUG
639              May  be set when invoking cpack in order to trace debug informa‐
640              tion during the CPack DEB generator run.
641
642              Mandatory
643                     No
644
645              Default
646                     None
647
648       CPACK_DEBIAN_PACKAGE_PREDEPENDS
649
650       CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS
651              Sets the Pre-Depends field of the Debian package.  Like Depends,
652              except  that it also forces dpkg to complete installation of the
653              packages named before even  starting  the  installation  of  the
654              package which declares the pre-dependency.
655
656              Mandatory
657                     No
658
659              Default
660
661                     • An empty string for non-component based installations
662
663CPACK_DEBIAN_PACKAGE_PREDEPENDS for component-based in‐
664                       stallations.
665
666              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
667              AGE_PREDEPENDS variables.
668
669
670              See
671              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
672
673       CPACK_DEBIAN_PACKAGE_ENHANCES
674
675       CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES
676              Sets  the  Enhances  field  of  the  Debian package.  Similar to
677              Suggests but works in the opposite direction:  declares  that  a
678              package can enhance the functionality of another package.
679
680              Mandatory
681                     No
682
683              Default
684
685                     • An empty string for non-component based installations
686
687CPACK_DEBIAN_PACKAGE_ENHANCES  for  component-based in‐
688                       stallations.
689
690              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
691              AGE_ENHANCES variables.
692
693
694              See
695              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
696
697       CPACK_DEBIAN_PACKAGE_BREAKS
698
699       CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS
700              Sets  the  Breaks  field  of  the Debian package.  When a binary
701              package (P) declares that it breaks  other  packages  (B),  dpkg
702              will not allow the package (P) which declares Breaks be unpacked
703              unless the packages that will be  broken  (B)  are  deconfigured
704              first.  As long as the package (P) is configured, the previously
705              deconfigured packages (B) cannot be reconfigured again.
706
707              Mandatory
708                     No
709
710              Default
711
712                     • An empty string for non-component based installations
713
714CPACK_DEBIAN_PACKAGE_BREAKS for component-based instal‐
715                       lations.
716
717              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
718              AGE_BREAKS variables.
719
720
721              See
722              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks
723
724       CPACK_DEBIAN_PACKAGE_CONFLICTS
725
726       CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS
727              Sets the Conflicts field of the Debian package.  When one binary
728              package  declares  a  conflict  with  another  using a Conflicts
729              field, dpkg will not allow them to be unpacked on the system  at
730              the same time.
731
732              Mandatory
733                     No
734
735              Default
736
737                     • An empty string for non-component based installations
738
739CPACK_DEBIAN_PACKAGE_CONFLICTS  for component-based in‐
740                       stallations.
741
742              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
743              AGE_CONFLICTS variables.
744
745
746              See
747              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
748
749              NOTE:
750                 This  is  a  stronger restriction than Breaks, which prevents
751                 the broken package from being configured while  the  breaking
752                 package  is  in the "Unpacked" state but allows both packages
753                 to be unpacked at the same time.
754
755       CPACK_DEBIAN_PACKAGE_PROVIDES
756
757       CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES
758              Sets the Provides field of the Debian package.  A virtual  pack‐
759              age  is  one  which appears in the Provides control field of an‐
760              other package.
761
762              Mandatory
763                     No
764
765              Default
766
767                     • An empty string for non-component based installations
768
769CPACK_DEBIAN_PACKAGE_PROVIDES for  component-based  in‐
770                       stallations.
771
772              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
773              AGE_PROVIDES variables.
774
775
776              See
777              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual
778
779       CPACK_DEBIAN_PACKAGE_REPLACES
780
781       CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES
782              Sets the Replaces field of the Debian package.  Packages can de‐
783              clare  in their control file that they should overwrite files in
784              certain other packages, or completely replace other packages.
785
786              Mandatory
787                     No
788
789              Default
790
791                     • An empty string for non-component based installations
792
793CPACK_DEBIAN_PACKAGE_REPLACES for  component-based  in‐
794                       stallations.
795
796              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
797              AGE_REPLACES variables.
798
799
800              See
801              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
802
803       CPACK_DEBIAN_PACKAGE_RECOMMENDS
804
805       CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS
806              Sets the Recommends field of the Debian package.   Allows  pack‐
807              ages  to declare a strong, but not absolute, dependency on other
808              packages.
809
810              Mandatory
811                     No
812
813              Default
814
815                     • An empty string for non-component based installations
816
817CPACK_DEBIAN_PACKAGE_RECOMMENDS for component-based in‐
818                       stallations.
819
820              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
821              AGE_RECOMMENDS variables.
822
823
824              See
825              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
826
827       CPACK_DEBIAN_PACKAGE_SUGGESTS
828
829       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS
830              Sets the Suggests field of the Debian package.  Allows  packages
831              to declare a suggested package install grouping.
832
833              Mandatory
834                     No
835
836              Default
837
838                     • An empty string for non-component based installations
839
840CPACK_DEBIAN_PACKAGE_SUGGESTS  for  component-based in‐
841                       stallations.
842
843              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
844              AGE_SUGGESTS variables.
845
846
847              See
848              https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
849
850       CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS
851              New in version 3.6.
852
853
854              Mandatory
855                     No
856
857              Default
858                     OFF
859
860              Allows  to  generate shlibs control file automatically. Compati‐
861              bility is defined by CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY
862              variable value.
863
864              NOTE:
865                 Libraries  are only considered if they have both library name
866                 and version set. This can be done by setting SOVERSION  prop‐
867                 erty with set_target_properties() command.
868
869       CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY
870              New in version 3.6.
871
872
873              Compatibility policy for auto-generated shlibs control file.
874
875              Mandatory
876                     No
877
878              Default
879                     =
880
881              Defines  compatibility  policy for auto-generated shlibs control
882              file.  Possible values: =, >=
883
884              See
885              https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps
886
887       CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
888
889       CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_EXTRA
890              This variable allow advanced user to add custom  script  to  the
891              control.tar.gz.   Typical  usage  is  for  conffiles,  postinst,
892              postrm, prerm.
893
894              Mandatory
895                     No
896
897              Default
898                     None
899
900              Usage:
901
902                 set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
903                     "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
904
905              New in version 3.4: Per-component CPACK_DEBIAN_<COMPONENT>_PACK‐
906              AGE_CONTROL_EXTRA variables.
907
908
909       CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
910
911       CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_STRICT_PERMISSION
912              New in version 3.4.
913
914
915              This  variable  indicates  if the Debian policy on control files
916              should be strictly followed.
917
918              Mandatory
919                     No
920
921              Default
922                     FALSE
923
924              Usage:
925
926                 set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION TRUE)
927
928              This overrides the permissions on the original files,  following
929              the        rules        set        by        Debian       policy
930              https://www.debian.org/doc/debian-policy/ch-files.html#s-permissions-owners
931
932              NOTE:
933                 The original permissions of the files will be used in the fi‐
934                 nal package unless this variable is set to TRUE.  In particu‐
935                 lar, the scripts should have the proper executable flag prior
936                 to the generation of the package.
937
938       CPACK_DEBIAN_PACKAGE_SOURCE
939
940       CPACK_DEBIAN_<COMPONENT>_PACKAGE_SOURCE
941              New in version 3.5.
942
943
944              Sets the Source field of the binary Debian  package.   When  the
945              binary  package  name is not the same as the source package name
946              (in particular when several  components/binaries  are  generated
947              from  one source) the source from which the binary has been gen‐
948              erated should be indicated with the field Source.
949
950              Mandatory
951                     No
952
953              Default
954
955                     • An empty string for non-component based installations
956
957CPACK_DEBIAN_PACKAGE_SOURCE for component-based instal‐
958                       lations.
959
960              See
961              https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-source
962
963              NOTE:
964                 This  value is not interpreted. It is possible to pass an op‐
965                 tional revision number of the referenced  source  package  as
966                 well.
967
968   Packaging of debug information
969       New in version 3.13.
970
971
972       Dbgsym packages contain debug symbols for debugging packaged binaries.
973
974       Dbgsym packaging has its own set of variables:
975
976       CPACK_DEBIAN_DEBUGINFO_PACKAGE
977
978       CPACK_DEBIAN_<component>_DEBUGINFO_PACKAGE
979              Enable generation of dbgsym .ddeb package(s).
980
981              Mandatory
982                     No
983
984              Default
985                     OFF
986
987       NOTE:
988          Setting  this  also strips the ELF files in the generated non-dbgsym
989          package, which results in debuginfo  only  being  available  in  the
990          dbgsym package.
991
992       NOTE:
993          Binaries  must  contain debug symbols before packaging so use either
994          Debug or RelWithDebInfo for CMAKE_BUILD_TYPE variable value.
995
996          Additionally,  if  CPACK_STRIP_FILES  is  set,  the  files  will  be
997          stripped  before  they get to the DEB generator, so will not contain
998          debug symbols and a dbgsym package will not get built.  Do  not  use
999          with CPACK_STRIP_FILES.
1000
1001   Building Debian packages on Windows
1002       New in version 3.10.
1003
1004
1005       To  communicate  UNIX  file  permissions  from the install stage to the
1006       CPack DEB generator the cmake_mode_t NTFS alternate data  stream  (ADT)
1007       is used.
1008
1009       When  a  filesystem  without  ADT support is used only owner read/write
1010       permissions can be preserved.
1011
1012   Reproducible packages
1013       New in version 3.13.
1014
1015
1016       The environment variable SOURCE_DATE_EPOCH may be set to a  UNIX  time‐
1017       stamp,  defined as the number of seconds, excluding leap seconds, since
1018       01 Jan 1970 00:00:00 UTC.  If set, the CPack DEB generator will use its
1019       value for timestamps in the package.
1020
1021   CPack DragNDrop Generator
1022       The DragNDrop CPack generator (macOS) creates a DMG image.
1023
1024   Variables specific to CPack DragNDrop generator
1025       The  following variables are specific to the DragNDrop installers built
1026       on macOS:
1027
1028       CPACK_DMG_VOLUME_NAME
1029              The volume name of the generated disk image.
1030
1031              Default
1032                     CPACK_PACKAGE_FILE_NAME
1033
1034       CPACK_DMG_FORMAT
1035              The disk image format.
1036
1037              Default
1038                     UDZO
1039
1040              Common values are UDRO (UDIF read-only),  UDZO  (UDIF  zlib-com‐
1041              pressed)  or  UDBZ  (UDIF bzip2-compressed). Refer to hdiutil(1)
1042              for more information on other available formats.
1043
1044       CPACK_DMG_DS_STORE
1045              Path to a custom .DS_Store file. This .DS_Store file can be used
1046              to  specify the Finder window position/geometry and layout (such
1047              as hidden toolbars, placement of the icons etc.). This file  has
1048              to be generated by the Finder (either manually or through Apple‐
1049              Script) using a normal folder from which the .DS_Store file  can
1050              then be extracted.
1051
1052       CPACK_DMG_DS_STORE_SETUP_SCRIPT
1053              New in version 3.5.
1054
1055
1056              Path  to a custom AppleScript file.  This AppleScript is used to
1057              generate a .DS_Store file which specifies the Finder window  po‐
1058              sition/geometry  and  layout (such as hidden toolbars, placement
1059              of the icons etc.).  By specifying a custom AppleScript there is
1060              no need to use CPACK_DMG_DS_STORE, as the .DS_Store that is gen‐
1061              erated by the AppleScript will be packaged.
1062
1063       CPACK_DMG_BACKGROUND_IMAGE
1064
1065              Default
1066
1067              Path to an image file to be used as the background.   This  file
1068              will  be  copied to .background/background.<ext>, where <ext> is
1069              the original image file extension.  The background image is  in‐
1070              stalled into the image before CPACK_DMG_DS_STORE_SETUP_SCRIPT is
1071              executed or CPACK_DMG_DS_STORE  is  installed.   By  default  no
1072              background image is set.
1073
1074       CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK
1075              New in version 3.6.
1076
1077
1078              Default behavior is to include a symlink to /Applications in the
1079              DMG.  Set this option to ON to avoid adding the symlink.
1080
1081       CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE
1082              New in version 3.23.
1083
1084
1085              Default
1086                     OFF
1087
1088              Control whether CPACK_RESOURCE_FILE_LICENSE, if set to a non-de‐
1089              fault  value,  is  used  as  the license agreement provided when
1090              mounting the DMG.  If CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE is
1091              not set, cpack(1) defaults to off.
1092
1093              In a CMake project that uses the CPack module to generate CPack‐
1094              Config.cmake,  CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE  must  be
1095              explicitly enabled by the project to activate the SLA.  See pol‐
1096              icy CMP0133.
1097
1098              NOTE:
1099                 This option was added in response to macOS 12.0's deprecation
1100                 of  the  hdiutil  udifrez  command  to make its use optional.
1101                 CPack 3.22 and below always use  CPACK_RESOURCE_FILE_LICENSE,
1102                 if set to a non-default value, as the DMG license.
1103
1104       CPACK_DMG_SLA_DIR
1105              New in version 3.5.
1106
1107
1108              Directory  where  license and menu files for different languages
1109              are stored.  Setting this causes  CPack  to  look  for  a  <lan‐
1110              guage>.menu.txt  and  <language>.license.txt  or  <language>.li‐
1111              cense.rtf    file    for    every    language     defined     in
1112              CPACK_DMG_SLA_LANGUAGES.     If    both    this   variable   and
1113              CPACK_RESOURCE_FILE_LICENSE are set, CPack will  only  look  for
1114              the  menu files and use the same license file for all languages.
1115              If both <language>.license.txt and <language>.license.rtf exist,
1116              the .txt file will be used.
1117
1118              New in version 3.17: RTF support.
1119
1120
1121       CPACK_DMG_SLA_LANGUAGES
1122              New in version 3.5.
1123
1124
1125              Languages  for which a license agreement is provided when mount‐
1126              ing the generated DMG. A menu file consists of 9 lines of  text.
1127              The first line is is the name of the language itself, uppercase,
1128              in English (e.g. German).  The other lines are  translations  of
1129              the following strings:
1130
1131              • Agree
1132
1133              • Disagree
1134
1135              • Print
1136
1137              • Save...
1138
1139              • You agree to the terms of the License Agreement when you click
1140                the "Agree" button.
1141
1142              • Software License Agreement
1143
1144              • This text cannot be saved. The disk may be full or locked,  or
1145                the file may be locked.
1146
1147              • Unable to print. Make sure you have selected a printer.
1148
1149              For  every  language  in this list, CPack will try to find files
1150              <language>.menu.txt and <language>.license.txt in the  directory
1151              specified by the CPACK_DMG_SLA_DIR variable.
1152
1153       CPACK_DMG_<component>_FILE_NAME
1154              New in version 3.17.
1155
1156
1157              File   name  when  packaging  <component>  as  its  own  DMG  (‐
1158              CPACK_COMPONENTS_GROUPING set to IGNORE).
1159
1160              Default
1161                     CPACK_PACKAGE_FILE_NAME-<component>
1162
1163       CPACK_DMG_FILESYSTEM
1164              New in version 3.21.
1165
1166
1167              Default
1168                     HFS+
1169
1170              The filesystem format. Common values are APFS and HFS+.  See man
1171              hdiutil for a full list of supported formats.
1172
1173       CPACK_COMMAND_HDIUTIL
1174              Path  to  the  hdiutil(1)  command used to operate on disk image
1175              files on macOS. This variable can be used to override the  auto‐
1176              matically  detected  command  (or  specify  its  location if the
1177              auto-detection fails to find it).
1178
1179       CPACK_COMMAND_SETFILE
1180              Path to the SetFile(1) command used to set  extended  attributes
1181              on  files and directories on macOS. This variable can be used to
1182              override the automatically detected command (or specify its  lo‐
1183              cation if the auto-detection fails to find it).
1184
1185       CPACK_COMMAND_REZ
1186              Path  to  the Rez(1) command used to compile resources on macOS.
1187              This variable can be used to override the automatically detected
1188              command  (or specify its location if the auto-detection fails to
1189              find it).
1190
1191   CPack External Generator
1192       New in version 3.13.
1193
1194
1195       CPack provides many generators to create  packages  for  a  variety  of
1196       platforms and packaging systems. The intention is for CMake/CPack to be
1197       a complete end-to-end solution for building and  packaging  a  software
1198       project.  However,  it  may not always be possible to use CPack for the
1199       entire packaging process, due to either technical limitations or  poli‐
1200       cies that require the use of certain tools. For this reason, CPack pro‐
1201       vides the "External" generator, which allows external  packaging  soft‐
1202       ware  to take advantage of some of the functionality provided by CPack,
1203       such as component installation and the dependency graph.
1204
1205   Integration with External Packaging Tools
1206       The CPack External generator generates  a  .json  file  containing  the
1207       CPack  internal  metadata, which gives external software information on
1208       how to package the software. External packaging software may itself in‐
1209       voke  CPack,  consume the generated metadata, install and package files
1210       as required.
1211
1212       Alternatively CPack can invoke an external packaging  software  through
1213       an  optional  custom  CMake script in CPACK_EXTERNAL_PACKAGE_SCRIPT in‐
1214       stead.
1215
1216       Staging of installation files may also optionally be taken care  of  by
1217       the  generator  when  enabled through the CPACK_EXTERNAL_ENABLE_STAGING
1218       variable.
1219
1220   JSON Format
1221       The JSON metadata file contains a list of CPack components  and  compo‐
1222       nent  groups,  the  various options passed to cpack_add_component() and
1223       cpack_add_component_group(), the dependencies  between  the  components
1224       and component groups, and various other options passed to CPack.
1225
1226       The JSON's root object will always provide two fields: formatVersionMa‐
1227       jor and formatVersionMinor, which are always integers that describe the
1228       output  format  of  the  generator. Backwards-compatible changes to the
1229       output format (for example, adding a new field that  didn't  exist  be‐
1230       fore)  cause  the minor version to be incremented, and backwards-incom‐
1231       patible changes (for example, deleting a field or changing its meaning)
1232       cause  the  major version to be incremented and the minor version reset
1233       to 0. The format version is always of the format major.minor. In  other
1234       words, it always has exactly two parts, separated by a period.
1235
1236       You  can  request one or more specific versions of the output format as
1237       described below with CPACK_EXTERNAL_REQUESTED_VERSIONS. The output for‐
1238       mat  will have a major version that exactly matches the requested major
1239       version, and a minor version that is greater than or equal to  the  re‐
1240       quested    minor   version.   If   no   version   is   requested   with
1241       CPACK_EXTERNAL_REQUESTED_VERSIONS, the latest known  major  version  is
1242       used  by default. Currently, the only supported format is 1.0, which is
1243       described below.
1244
1245   Version 1.0
1246       In addition to the standard format fields, format version 1.0  provides
1247       the following fields in the root:
1248
1249       components
1250              The  components  field  is an object with component names as the
1251              keys and objects describing the components as  the  values.  The
1252              component objects have the following fields:
1253
1254              name   The name of the component. This is always the same as the
1255                     key in the components object.
1256
1257              displayName
1258                     The  value  of   the   DISPLAY_NAME   field   passed   to
1259                     cpack_add_component().
1260
1261              description
1262                     The   value   of   the   DESCRIPTION   field   passed  to
1263                     cpack_add_component().
1264
1265              isHidden
1266                     True if HIDDEN was passed to cpack_add_component(), false
1267                     if it was not.
1268
1269              isRequired
1270                     True  if  REQUIRED  was  passed to cpack_add_component(),
1271                     false if it was not.
1272
1273              isDisabledByDefault
1274                     True if DISABLED  was  passed  to  cpack_add_component(),
1275                     false if it was not.
1276
1277              group  Only     present     if     GROUP     was    passed    to
1278                     cpack_add_component(). If so,  this  field  is  a  string
1279                     value containing the component's group.
1280
1281              dependencies
1282                     An  array  of  components  the component depends on. This
1283                     contains the values in the  DEPENDS  argument  passed  to
1284                     cpack_add_component(). If no DEPENDS argument was passed,
1285                     this is an empty list.
1286
1287              installationTypes
1288                     An array of installation types the component is part  of.
1289                     This  contains  the  values in the INSTALL_TYPES argument
1290                     passed to cpack_add_component(). If no INSTALL_TYPES  ar‐
1291                     gument was passed, this is an empty list.
1292
1293              isDownloaded
1294                     True  if  DOWNLOADED was passed to cpack_add_component(),
1295                     false if it was not.
1296
1297              archiveFile
1298                     The name of the archive file passed with the ARCHIVE_FILE
1299                     argument to cpack_add_component(). If no ARCHIVE_FILE ar‐
1300                     gument was passed, this is an empty string.
1301
1302       componentGroups
1303              The componentGroups field is  an  object  with  component  group
1304              names as the keys and objects describing the component groups as
1305              the values. The  component  group  objects  have  the  following
1306              fields:
1307
1308              name   The  name of the component group. This is always the same
1309                     as the key in the componentGroups object.
1310
1311              displayName
1312                     The  value  of   the   DISPLAY_NAME   field   passed   to
1313                     cpack_add_component_group().
1314
1315              description
1316                     The   value   of   the   DESCRIPTION   field   passed  to
1317                     cpack_add_component_group().
1318
1319              parentGroup
1320                     Only   present   if   PARENT_GROUP    was    passed    to
1321                     cpack_add_component_group().  If  so,  this  field  is  a
1322                     string value  containing  the  component  group's  parent
1323                     group.
1324
1325              isExpandedByDefault
1326                     True       if       EXPANDED      was      passed      to
1327                     cpack_add_component_group(), false if it was not.
1328
1329              isBold True      if      BOLD_TITLE      was      passed      to
1330                     cpack_add_component_group(), false if it was not.
1331
1332              components
1333                     An  array  of names of components that are direct members
1334                     of the group (components that have this  group  as  their
1335                     GROUP). Components of subgroups are not included.
1336
1337              subgroups
1338                     An  array of names of component groups that are subgroups
1339                     of the group (groups that have this group as  their  PAR‐
1340                     ENT_GROUP).
1341
1342       installationTypes
1343              The  installationTypes field is an object with installation type
1344              names as the keys and objects describing the installation  types
1345              as  the values. The installation type objects have the following
1346              fields:
1347
1348              name   The name of the installation type.  This  is  always  the
1349                     same as the key in the installationTypes object.
1350
1351              displayName
1352                     The   value   of   the   DISPLAY_NAME   field  passed  to
1353                     cpack_add_install_type().
1354
1355              index  The integer index of the installation type in the list.
1356
1357       projects
1358              The projects field is  an  array  of  objects  describing  CMake
1359              projects  which  comprise  the CPack project. The values in this
1360              field are derived  from  CPACK_INSTALL_CMAKE_PROJECTS.  In  most
1361              cases,  this  will be only a single project. The project objects
1362              have the following fields:
1363
1364              projectName
1365                     The project name passed to CPACK_INSTALL_CMAKE_PROJECTS.
1366
1367              component
1368                     The name of the component or  component  set  which  com‐
1369                     prises the project.
1370
1371              directory
1372                     The build directory of the CMake project. This is the di‐
1373                     rectory which contains the cmake_install.cmake script.
1374
1375              subDirectory
1376                     The subdirectory to install the project into  inside  the
1377                     CPack package.
1378
1379       packageName
1380              The  package  name  given in CPACK_PACKAGE_NAME. Only present if
1381              this option is set.
1382
1383       packageVersion
1384              The package version given in CPACK_PACKAGE_VERSION. Only present
1385              if this option is set.
1386
1387       packageDescriptionFile
1388              The       package       description      file      given      in
1389              CPACK_PACKAGE_DESCRIPTION_FILE. Only present if this  option  is
1390              set.
1391
1392       packageDescriptionSummary
1393              The      package      description      summary      given     in
1394              CPACK_PACKAGE_DESCRIPTION_SUMMARY. Only present if  this  option
1395              is set.
1396
1397       buildConfig
1398              The build configuration given to CPack with the cpack -C option.
1399              Only present if this option is set.
1400
1401       defaultDirectoryPermissions
1402              The     default     directory     permissions      given      in
1403              CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.   Only  present  if
1404              this option is set.
1405
1406       setDestdir
1407              True if CPACK_SET_DESTDIR is true, false if it is not.
1408
1409       packagingInstallPrefix
1410              The install prefix given in CPACK_PACKAGING_INSTALL_PREFIX. Only
1411              present if CPACK_SET_DESTDIR is true.
1412
1413       stripFiles
1414              True if CPACK_STRIP_FILES is true, false if it is not.
1415
1416       warnOnAbsoluteInstallDestination
1417              True   if  CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION  is  true,
1418              false if it is not.
1419
1420       errorOnAbsoluteInstallDestination
1421              True  if  CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION  is  true,
1422              false if it is not.
1423
1424   Variables specific to CPack External generator
1425       CPACK_EXTERNAL_REQUESTED_VERSIONS
1426              This variable is used to request a specific version of the CPack
1427              External generator. It is a list of  major.minor  values,  sepa‐
1428              rated by semicolons.
1429
1430              If this variable is set to a non-empty value, the CPack External
1431              generator will iterate through each item in the list  to  search
1432              for  a version that it knows how to generate. Requested versions
1433              should be listed in order of descending preference by the client
1434              software, as the first matching version in the list will be gen‐
1435              erated.
1436
1437              The generator knows how to generate the version if it has a ver‐
1438              sioned  generator  whose  major  version exactly matches the re‐
1439              quested major version, and whose minor version is  greater  than
1440              or  equal  to  the  requested  minor  version.  For  example, if
1441              CPACK_EXTERNAL_REQUESTED_VERSIONS contains 1.0,  and  the  CPack
1442              External  generator  knows how to generate 1.1, it will generate
1443              1.1.  If the generator doesn't know how to generate a version in
1444              the  list, it skips the version and looks at the next one. If it
1445              doesn't know how to generate any of the requested  versions,  an
1446              error is thrown.
1447
1448              If  this  variable  is  not set, or is empty, the CPack External
1449              generator will generate the highest major and minor version that
1450              it knows how to generate.
1451
1452              If  an  invalid  version  is  encountered  in CPACK_EXTERNAL_RE‐
1453              QUESTED_VERSIONS (one that doesn't match major.minor, where  ma‐
1454              jor and minor are integers), it is ignored.
1455
1456       CPACK_EXTERNAL_ENABLE_STAGING
1457              This variable can be set to true to enable optional installation
1458              into a temporary staging area which can then be  picked  up  and
1459              packaged by an external packaging tool.  The top level directory
1460              used by CPack for the current packaging  task  is  contained  in
1461              CPACK_TOPLEVEL_DIRECTORY.   It  is  automatically  cleaned up on
1462              each run before packaging is initiated and can be used for  cus‐
1463              tom temporary files required by the external packaging tool.  It
1464              also contains the staging  area  CPACK_TEMPORARY_DIRECTORY  into
1465              which CPack performs the installation when staging is enabled.
1466
1467       CPACK_EXTERNAL_PACKAGE_SCRIPT
1468              This  variable  can  optionally specify the full path to a CMake
1469              script file to be run as part of the CPack  invocation.   It  is
1470              invoked  after  (optional) staging took place and may run an ex‐
1471              ternal packaging tool. The script has access  to  the  variables
1472              defined by the CPack config file.
1473
1474       CPACK_EXTERNAL_BUILT_PACKAGES
1475              New in version 3.19.
1476
1477
1478              The CPACK_EXTERNAL_PACKAGE_SCRIPT script may set this list vari‐
1479              able to the full paths of generated package files.   CPack  will
1480              copy  these  files  from  the  staging directory back to the top
1481              build directory and  possibly  produce  checksum  files  if  the
1482              CPACK_PACKAGE_CHECKSUM is set.
1483
1484   CPack FreeBSD Generator
1485       New in version 3.10.
1486
1487
1488       The built in (binary) CPack FreeBSD (pkg) generator (Unix only)
1489
1490   Variables affecting the CPack FreeBSD (pkg) generator
1491       • New in version 3.18: CPACK_ARCHIVE_THREADS
1492
1493
1494   Variables specific to CPack FreeBSD (pkg) generator
1495       The  CPack  FreeBSD  generator may be used to create pkg(8) packages --
1496       these may be used on FreeBSD, DragonflyBSD, NetBSD, OpenBSD,  but  also
1497       on Linux or OSX, depending on the installed package-management tools --
1498       using CPack.
1499
1500       The CPack FreeBSD generator is a CPack generator and uses the CPACK_XXX
1501       variables  used by CPack. It tries to re-use packaging information that
1502       may already be specified for Debian packages for the CPack DEB  Genera‐
1503       tor. It also tries to re-use RPM packaging information when Debian does
1504       not specify.
1505
1506       The CPack FreeBSD generator should work on any  host  with  libpkg  in‐
1507       stalled. The packages it produces are specific to the host architecture
1508       and ABI.
1509
1510       The CPack FreeBSD generator sets package-metadata  through  CPACK_FREE‐
1511       BSD_XXX  variables.  The  CPack FreeBSD generator, unlike the CPack Deb
1512       generator, does not specially support componentized packages; a  single
1513       package  is  created  from  all  the software artifacts created through
1514       CMake.
1515
1516       All of the variables can be set specifically for FreeBSD  packaging  in
1517       the  CPackConfig  file  or in CMakeLists.txt, but most of them have de‐
1518       faults that use  general  settings  (e.g.  CMAKE_PROJECT_NAME)  or  De‐
1519       bian-specific  variables when those make sense (e.g. the homepage of an
1520       upstream project is usually unchanged by the flavor of packaging). When
1521       there  is  no Debian information to fall back on, but the RPM packaging
1522       has it, fall back to the RPM information (e.g. package license).
1523
1524       CPACK_FREEBSD_PACKAGE_NAME
1525              Sets the package name (in the package manifest, but also affects
1526              the output filename).
1527
1528              Mandatory
1529                     Yes
1530
1531              Default
1532
1533CPACK_PACKAGE_NAME (this is always set by CPack itself,
1534                       based on CMAKE_PROJECT_NAME).
1535
1536       CPACK_FREEBSD_PACKAGE_COMMENT
1537              Sets the package comment. This is  the  short  description  dis‐
1538              played by pkg(8) in standard "pkg info" output.
1539
1540              Mandatory
1541                     Yes
1542
1543              Default
1544
1545CPACK_PACKAGE_DESCRIPTION_SUMMARY  (this  is always set
1546                       by CPack itself, if nothing else sets it explicitly).
1547
1548       CPACK_FREEBSD_PACKAGE_DESCRIPTION
1549              Sets the package description. This is the  long  description  of
1550              the  package, given by "pkg info" with a specific package as ar‐
1551              gument.
1552
1553              Mandatory
1554                     Yes
1555
1556              Default
1557
1558CPACK_DEBIAN_PACKAGE_DESCRIPTION (this may be  set  al‐
1559                       ready  for  Debian  packaging, so it is used as a fall‐
1560                       back).
1561
1562CPACK_PACKAGE_DESCRIPTION_SUMMARY (this is  always  set
1563                       by CPack itself, if nothing else sets it explicitly).
1564
1565PROJECT_DESCRIPTION  (this can be set with the DESCRIP‐
1566                       TION parameter for project()).
1567
1568       CPACK_FREEBSD_PACKAGE_WWW
1569              The URL of the web site for this package, preferably  (when  ap‐
1570              plicable)  the  site  from  which the original source can be ob‐
1571              tained and any additional upstream documentation or  information
1572              may be found.
1573
1574              Mandatory
1575                     Yes
1576
1577              Default
1578
1579CPACK_PACKAGE_HOMEPAGE_URL, or if that is not set,
1580
1581CPACK_DEBIAN_PACKAGE_HOMEPAGE  (this may be set already
1582                       for Debian packaging, so it is used as a fallback).
1583
1584              New in version 3.12: The CPACK_PACKAGE_HOMEPAGE_URL variable.
1585
1586
1587       CPACK_FREEBSD_PACKAGE_LICENSE
1588              The license, or licenses, which apply to this software  package.
1589              This must be one or more license-identifiers that pkg recognizes
1590              as acceptable license identifiers (e.g. "GPLv2").
1591
1592              Mandatory
1593                     Yes
1594
1595              Default
1596
1597CPACK_RPM_PACKAGE_LICENSE
1598
1599       CPACK_FREEBSD_PACKAGE_LICENSE_LOGIC
1600              This variable is only of importance if there is  more  than  one
1601              license.  The default is "single", which is only applicable to a
1602              single license.  Other acceptable values are determined  by  pkg
1603              --  those are "dual" or "multi" -- meaning choice (OR) or simul‐
1604              taneous (AND) application of the licenses.
1605
1606              Mandatory
1607                     No
1608
1609              Default
1610                     single
1611
1612       CPACK_FREEBSD_PACKAGE_MAINTAINER
1613              The FreeBSD maintainer (e.g. kde@freebsd.org) of this package.
1614
1615              Mandatory
1616                     Yes
1617
1618              Default
1619                     none
1620
1621       CPACK_FREEBSD_PACKAGE_ORIGIN
1622              The origin (ports label) of this package; for packages built  by
1623              CPack  outside  of  the ports system this is of less importance.
1624              The default puts the package somewhere under misc/, as  a  stop‐
1625              gap.
1626
1627              Mandatory
1628                     Yes
1629
1630              Default
1631                     misc/<package name>
1632
1633       CPACK_FREEBSD_PACKAGE_CATEGORIES
1634              The  ports categories where this package lives (if it were to be
1635              built from ports). If none is set a single  category  is  deter‐
1636              mined based on the package origin.
1637
1638              Mandatory
1639                     Yes
1640
1641              Default
1642                     derived from ORIGIN
1643
1644       CPACK_FREEBSD_PACKAGE_DEPS
1645              A list of package origins that should be added as package depen‐
1646              dencies.  These are in the form  <category>/<packagename>,  e.g.
1647              x11/libkonq.   No version information needs to be provided (this
1648              is not included in the manifest).
1649
1650              Mandatory
1651                     No
1652
1653              Default
1654                     empty
1655
1656   CPack Inno Setup Generator
1657       New in version 3.27.
1658
1659
1660       Inno Setup is a free installer for Windows programs by  Jordan  Russell
1661       and Martijn Laan (https://jrsoftware.org/isinfo.php).
1662
1663       This documentation explains Inno Setup generator specific options.
1664
1665       The generator provides a lot of options like components. Unfortunately,
1666       not all features (e.g. component dependencies) are currently  supported
1667       by Inno Setup and they're ignored by the generator for now.
1668
1669       CPack requires Inno Setup 6 or greater and only works on Windows.
1670
1671   Variables specific to CPack Inno Setup generator
1672       You can use the following variables to change the behavior of the CPack
1673       INNOSETUP generator:
1674
1675   General
1676       None of the following variables is required to  be  set  for  the  Inno
1677       Setup generator to work. If a variable is marked as mandatory below but
1678       not set, its default value is taken.
1679
1680       The variables can also contain Inno Setup constants like {app}.  Please
1681       refer to the documentation of Inno Setup for more information.
1682
1683       If you're asked to provide the path to any file, you can always give an
1684       absolute path or in most cases the relative path from the top-level di‐
1685       rectory where all files being installed by an install() instruction re‐
1686       side.
1687
1688       CPack tries to escape quotes and other special characters for you. How‐
1689       ever, using special characters could cause problems.
1690
1691       The following variable simplifies the usage of Inno Setup in CMake:
1692
1693       CPACK_INNOSETUP_USE_CMAKE_BOOL_FORMAT
1694              Inno  Setup  only  uses  yes  or no as boolean formats meanwhile
1695              CMake uses a lot of alternative formats like ON or  OFF.  Having
1696              this option turned on enables an automatic conversion.
1697
1698              Consider the following example:
1699
1700                 set(CMAKE_INNOSETUP_SETUP_AllowNoIcons OFF)
1701
1702              If  this option is turned on, the following line will be created
1703              in the output script: AllowNoIcons=no.  Else, the following  er‐
1704              roneous line will be created: AllowNoIcons=OFF
1705
1706              The conversion is enabled in every Inno Setup specific variable.
1707
1708              Mandatory
1709                     Yes
1710
1711              Default
1712                     ON
1713
1714   Setup Specific Variables
1715       CPACK_INNOSETUP_ARCHITECTURE
1716              One of x86, x64, arm64 or ia64. This variable specifies the tar‐
1717              get architecture of the installer. This also affects the Program
1718              Files folder or registry keys being used.
1719
1720              CPack  tries  to  determine the correct value with a try compile
1721              (see CMAKE_SIZEOF_VOID_P), but this option can be manually spec‐
1722              ified too (especially when using ia64 or cross-platform compila‐
1723              tion).
1724
1725              Mandatory
1726                     Yes
1727
1728              Default
1729                     Either x86  or  x64  depending  on  the  results  of  the
1730                     try-compile
1731
1732       CPACK_INNOSETUP_INSTALL_ROOT
1733              If  you  don't want the installer to create the installation di‐
1734              rectory under Program Files, you've to specify the  installation
1735              root here.
1736
1737              The  full  directory  of  the  installation will be: ${CPACK_IN‐
1738              NOSETUP_INSTALL_ROOT}/${CPACK_PACKAGE_INSTALL_DIRECTORY}.
1739
1740              Mandatory
1741                     Yes
1742
1743              Default
1744                     {autopf}
1745
1746       CPACK_INNOSETUP_ALLOW_CUSTOM_DIRECTORY
1747              If turned on, the installer allows the user to  change  the  in‐
1748              stallation directory providing an extra wizard page.
1749
1750              Mandatory
1751                     Yes
1752
1753              Default
1754                     ON
1755
1756       CPACK_INNOSETUP_PROGRAM_MENU_FOLDER
1757              The initial name of the start menu folder being created.
1758
1759              If  this  variable  is set to ., then no separate folder is cre‐
1760              ated, application shortcuts will appear in the  top-level  start
1761              menu folder.
1762
1763              Mandatory
1764                     Yes
1765
1766              Default
1767                     The value of CPACK_PACKAGE_NAME
1768
1769       CPACK_INNOSETUP_LANGUAGES
1770              A  semicolon-separated  list of languages you want Inno Setup to
1771              include.
1772
1773              Currently available: armenian,  brazilianPortuguese,  bulgarian,
1774              catalan,  corsican,  czech,  danish,  dutch,  english,  finnish,
1775              french, german, hebrew, icelandic, italian, japanese, norwegian,
1776              polish, portuguese, russian, slovak, slovenian, spanish, turkish
1777              and ukrainian.  This list might differ depending on the  version
1778              of Inno Setup.
1779
1780              Mandatory
1781                     Yes
1782
1783              Default
1784                     english
1785
1786       CPACK_INNOSETUP_IGNORE_LICENSE_PAGE
1787              If     you     don't    specify    a    license    file    using
1788              CPACK_RESOURCE_FILE_LICENSE, CPack uses a file for demonstration
1789              purposes.  If  you want the installer to ignore license files at
1790              all, you can enable this option.
1791
1792              Mandatory
1793                     Yes
1794
1795              Default
1796                     OFF
1797
1798       CPACK_INNOSETUP_IGNORE_README_PAGE
1799              If    you    don't    specify    a     readme     file     using
1800              CPACK_RESOURCE_FILE_README,  CPack uses a file for demonstration
1801              purposes. If you want the installer to ignore  readme  files  at
1802              all,  you  can  enable this option. Make sure the option is dis‐
1803              abled when using a custom readme file.
1804
1805              Mandatory
1806                     Yes
1807
1808              Default
1809                     ON
1810
1811       CPACK_INNOSETUP_PASSWORD
1812              Enables password protection and file encryption with  the  given
1813              password.
1814
1815              Mandatory
1816                     No
1817
1818       CPACK_INNOSETUP_USE_MODERN_WIZARD
1819              Enables the modern look and feel provided by Inno Setup. If this
1820              option is turned off, the classic style is used instead.  Images
1821              and icon files are also affected.
1822
1823              Mandatory
1824                     Yes
1825
1826              Default
1827                     OFF because of compatibility reasons
1828
1829       CPACK_INNOSETUP_ICON_FILE
1830              The path to a custom installer .ico file.
1831
1832              Use  CPACK_PACKAGE_ICON to customize the bitmap file being shown
1833              in the wizard.
1834
1835              Mandatory
1836                     No
1837
1838       CPACK_INNOSETUP_SETUP_<directive>
1839              This group allows adapting any of the [Setup] section directives
1840              provided by Inno Setup where directive is its name.
1841
1842              Here are some examples:
1843
1844                 set(CPACK_INNOSETUP_SETUP_WizardSmallImageFile "my_bitmap.bmp")
1845                 set(CPACK_INNOSETUP_SETUP_AllowNoIcons OFF) # This requires CPACK_INNOSETUP_USE_CMAKE_BOOL_FORMAT to be on
1846
1847              All  of  these  variables  have higher priority than the others.
1848              Consider the following example:
1849
1850                 set(CPACK_INNOSETUP_SETUP_Password "admin")
1851                 set(CPACK_INNOSETUP_PASSWORD "secret")
1852
1853              The  password  will  be  admin  at  the  end  because  CPACK_IN‐
1854              NOSETUP_PASSWORD    has    less    priority    than    CPACK_IN‐
1855              NOSETUP_SETUP_Password.
1856
1857              Mandatory
1858                     No
1859
1860   File Specific Variables
1861       Although all files being installed by an install() instruction are  au‐
1862       tomatically  processed and added to the installer, there are some vari‐
1863       ables to customize the installation process.
1864
1865       Before using  executables  (only  .exe  or  .com)  in  shortcuts  (e.g.
1866       CPACK_CREATE_DESKTOP_LINKS)  or  [Run]  entries,  you've to add the raw
1867       file name (without path and extension) to CPACK_PACKAGE_EXECUTABLES and
1868       create a start menu shortcut for them.
1869
1870       If you have two files with the same raw name (e.g. a/executable.exe and
1871       b/executable.com), an entry in the section is created twice. This  will
1872       result in undefined behavior and is not recommended.
1873
1874       CPACK_INNOSETUP_CUSTOM_INSTALL_INSTRUCTIONS
1875              This variable should contain a semicolon-separated list of pairs
1876              path, instruction and can be used to customize the install  com‐
1877              mand being automatically created for each file or directory.
1878
1879              CPack  creates  the  following  Inno Setup instruction for every
1880              file...
1881
1882                 Source: "absolute\path\to\my_file.txt"; DestDir: "{app}"; Flags: ignoreversion
1883
1884              ...and the following line for every directory:
1885
1886                 Name: "{app}\my_folder"
1887
1888              You might want to change the destination directory or the  flags
1889              of  my_file.txt.  Since we can also provide a relative path, the
1890              line you'd like to have, is the following:
1891
1892                 Source: "my_file.txt"; DestDir: "{userdocs}"; Flags: ignoreversion uninsneveruninstall
1893
1894              You would do this by  using  my_file.txt  as  path  and  Source:
1895              "my_file.txt"; DestDir: "{userdocs}"; Flags: ignoreversion unin‐
1896              sneveruninstall as instruction.
1897
1898              You've to take care of the escaping problem.  So the CMake  com‐
1899              mand would be:
1900
1901                 set(CPACK_INNOSETUP_CUSTOM_INSTALL_INSTRUCTIONS "my_file.txt;Source: \\\"my_file.txt\\\"\\; DestDir: \\\"{userdocs}\\\"\\; Flags: ignoreversion uninsneveruninstall")
1902
1903              To  improve readability, you should go around the escaping prob‐
1904              lem by using CPACK_VERBATIM_VARIABLES or by placing the instruc‐
1905              tion into a separate CPack project config file.
1906
1907              If you customize the install instruction of a specific file, you
1908              lose the connection to its component. To go around, manually add
1909              Components:  <component>. You also need to add its shortcuts and
1910              [Run] entries by yourself in a custom section,  since  the  exe‐
1911              cutable won't be found anymore by CPACK_PACKAGE_EXECUTABLES.
1912
1913              Here's  another  example (Note: You've to go around the escaping
1914              problem for the example to work):
1915
1916                 set(CPACK_INNOSETUP_CUSTOM_INSTALL_INSTRUCTIONS
1917                     "component1/my_folder" "Name: \"{userdocs}\\my_folder\"\; Components: component1"
1918                     "component2/my_folder2/my_file.txt" "Source: \"component2\\my_folder2\\my_file.txt\"\; DestDir: \"{app}\\my_folder2\\my_file.txt\"\; Flags: ignoreversion uninsneveruninstall\; Components: component2")
1919
1920              Mandatory
1921                     No
1922
1923       CPACK_INNOSETUP_MENU_LINKS
1924              This variable should contain a semicolon-separated list of pairs
1925              link,  link name and can be used to add shortcuts into the start
1926              menu   folder   beside   those   of   the    executables    (see
1927              CPACK_PACKAGE_EXECUTABLES).   While link name is the label, link
1928              can be a URL or a path relative to the installation directory.
1929
1930              Here's an example:
1931
1932                 set(CPACK_INNOSETUP_MENU_LINKS
1933                     "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html"
1934                     "CMake Help" "https://cmake.org" "CMake Web Site")
1935
1936              Mandatory
1937                     No
1938
1939       CPACK_INNOSETUP_CREATE_UNINSTALL_LINK
1940              If this option is turned on, a  shortcut  to  the  application's
1941              uninstaller is automatically added to the start menu folder.
1942
1943              Mandatory
1944                     Yes
1945
1946              Default
1947                     OFF
1948
1949       CPACK_INNOSETUP_RUN_EXECUTABLES
1950              A  semicolon-separated  list  of  executables being specified in
1951              CPACK_PACKAGE_EXECUTABLES which the user can run  when  the  in‐
1952              staller finishes.
1953
1954              They're internally added to the [Run] section.
1955
1956              Mandatory
1957                     No
1958
1959   Components Specific Variables
1960       The  generator supports components and also downloaded components. How‐
1961       ever, there are some features of components that aren't  supported  yet
1962       (especially  component  dependencies).  These variables are ignored for
1963       now.
1964
1965       CPack will change a component's name in Inno Setup if it has  a  parent
1966       group  for  technical reasons. Consider using group\component as compo‐
1967       nent name in Inno Setup scripts if you have the component component and
1968       its parent group group.
1969
1970       Here are some additional variables for components:
1971
1972       CPACK_INNOSETUP_<compName>_INSTALL_DIRECTORY
1973              If  you  don't want the component compName to be installed under
1974              {app}, you've to specify its installation directory here.
1975
1976              Mandatory
1977                     No
1978
1979       CPACK_INNOSETUP_VERIFY_DOWNLOADS
1980              This option only affects downloaded components.
1981
1982              If this option is turned on, the hashes of  the  downloaded  ar‐
1983              chives  are calculated during compile and download time. The in‐
1984              staller will only proceed if they match.
1985
1986              Mandatory
1987                     Yes
1988
1989              Default
1990                     ON
1991
1992   Compilation and Scripting Specific Variables
1993       CPACK_INNOSETUP_EXECUTABLE
1994              The filename of the Inno Setup Script Compiler command.
1995
1996              Mandatory
1997                     Yes
1998
1999              Default
2000                     ISCC
2001
2002       CPACK_INNOSETUP_EXECUTABLE_ARGUMENTS
2003              A semicolon-separated list of extra command-line options for the
2004              Inno Setup Script Compiler command.
2005
2006              For example: /Qp;/Smysigntool=$p
2007
2008              Take care of the escaping problem.
2009
2010              Mandatory
2011                     No
2012
2013       CPACK_INNOSETUP_DEFINE_<macro>
2014              This  group  allows  to  add  custom  define  directives as com‐
2015              mand-line options to the Inno Setup Preprocessor  command.  Each
2016              entry  emulates a #define public <macro> directive. Its macro is
2017              accessible from anywhere (public), so it can also be used in ex‐
2018              tra script files.
2019
2020              Macro  names  must  not contain any special characters. Refer to
2021              the Inno  Setup  Preprocessor  documentation  for  the  detailed
2022              rules.
2023
2024              Consider the following example:
2025
2026                 # The following line emulates: #define public MyMacro "Hello, World!"
2027                 set(CPACK_INNOSETUP_DEFINE_MyMacro "Hello, World!")
2028
2029              At  this point, you can use MyMacro anywhere. For example in the
2030              following extra script:
2031
2032                 AppComments={#emit "'My Macro' has the value: " + MyMacro}
2033
2034              Take care of the escaping problem.
2035
2036              Mandatory
2037                     No
2038
2039       CPACK_INNOSETUP_EXTRA_SCRIPTS
2040              A semicolon-separated list of paths to  additional  .iss  script
2041              files to be processed.
2042
2043              They're internally included at the top of the output script file
2044              using a #include directive.
2045
2046              You can add any section in your file  to  extend  the  installer
2047              (e.g.  adding  additional  tasks or registry keys). Prefer using
2048              CPACK_INNOSETUP_SETUP_<directive>  when  extending  the  [Setup]
2049              section.
2050
2051              Mandatory
2052                     No
2053
2054       CPACK_INNOSETUP_CODE_FILES
2055              A  semicolon-separated  list of paths to additional Pascal files
2056              to be processed.
2057
2058              This     variable     is     actually      the      same      as
2059              CPACK_INNOSETUP_EXTRA_SCRIPTS,  except  you  don't  have  to add
2060              [Code] at the top of your file. Never change the current section
2061              in  a  code  file. This will result in undefined behavior! Treat
2062              them as normal Pascal scripts instead.
2063
2064              Code files are included at the very bottom of the output script.
2065
2066              Mandatory
2067                     No
2068
2069   CPack IFW Generator
2070       New in version 3.1.
2071
2072
2073       Configure and run the Qt Installer  Framework  to  generate  a  Qt  in‐
2074       staller.
2075
2076   Overview
2077       This  cpack  generator generates configuration and meta information for
2078       the Qt Installer Framework (QtIFW), and runs QtIFW tools to generate  a
2079       Qt installer.
2080
2081       QtIFW  provides  tools and utilities to create installers for the plat‐
2082       forms supported by Qt: Linux, Microsoft Windows, and macOS.
2083
2084       To make use of this  generator,  QtIFW  needs  to  be  installed.   The
2085       CPackIFW module looks for the location of the QtIFW command-line utili‐
2086       ties, and defines several commands to control the behavior of this gen‐
2087       erator. See Hints for Finding QtIFW.
2088
2089   Variables
2090       You can use the following variables to change the behavior of the CPack
2091       IFW generator.
2092
2093   Debug
2094       CPACK_IFW_VERBOSE
2095              New in version 3.3.
2096
2097
2098              Set to ON to enable addition debug output.  By default is OFF.
2099
2100   Package
2101       CPACK_IFW_PACKAGE_TITLE
2102              Name of the installer as displayed on the  title  bar.   If  not
2103              specified, it defaults to CPACK_PACKAGE_DESCRIPTION_SUMMARY.
2104
2105       CPACK_IFW_PACKAGE_PUBLISHER
2106              Publisher  of  the  software  (as  shown  in the Windows Control
2107              Panel).  If not specified, it defaults to CPACK_PACKAGE_VENDOR.
2108
2109       CPACK_IFW_PRODUCT_URL
2110              URL to a page that contains  product  information  on  your  web
2111              site.
2112
2113       CPACK_IFW_PACKAGE_ICON
2114              Filename  for  a  custom  installer icon. It must be an absolute
2115              path.  This should be a .icns file on macOS and a .ico  file  on
2116              Windows.  It is ignored on other platforms.
2117
2118       CPACK_IFW_PACKAGE_WINDOW_ICON
2119              Filename  for  a  custom  window  icon in PNG format for the In‐
2120              staller application. It must be an absolute path.
2121
2122       CPACK_IFW_PACKAGE_LOGO
2123              Filename for a logo image in PNG format,  used  as  QWizard::Lo‐
2124              goPixmap.  It must be an absolute path.
2125
2126       CPACK_IFW_PACKAGE_WATERMARK
2127              New in version 3.8.
2128
2129
2130              Filename  for  a  watermark  image  in PNG format, used as QWiz‐
2131              ard::WatermarkPixmap. It must be an absolute path.
2132
2133       CPACK_IFW_PACKAGE_BANNER
2134              New in version 3.8.
2135
2136
2137              Filename for a banner image in PNG format, used as QWizard::Ban‐
2138              nerPixmap.  It must be an absolute path.
2139
2140       CPACK_IFW_PACKAGE_BACKGROUND
2141              New in version 3.8.
2142
2143
2144              Filename  for  a  background  image in PNG format, used as QWiz‐
2145              ard::BackgroundPixmap (only used by MacStyle). It must be an ab‐
2146              solute path.
2147
2148       CPACK_IFW_PACKAGE_WIZARD_STYLE
2149              New in version 3.8.
2150
2151
2152              Wizard style to be used (Modern, Mac, Aero or Classic).
2153
2154       CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH
2155              New in version 3.8.
2156
2157
2158              Default  width  of  the wizard in pixels. Setting a banner image
2159              will override this.
2160
2161       CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT
2162              New in version 3.8.
2163
2164
2165              Default height of the wizard in pixels. Setting a watermark  im‐
2166              age will override this.
2167
2168       CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST
2169              New in version 3.20.
2170
2171
2172              Set  to  OFF  if  the widget listing installer pages on the left
2173              side of the wizard should not be shown.
2174
2175              It is ON by default, but will only have an effect if using QtIFW
2176              4.0 or later.
2177
2178       CPACK_IFW_PACKAGE_TITLE_COLOR
2179              New in version 3.8.
2180
2181
2182              Color  of  the  titles  and subtitles (takes an HTML color code,
2183              such as #88FF33).
2184
2185       CPACK_IFW_PACKAGE_STYLE_SHEET
2186              New in version 3.15.
2187
2188
2189              Filename for a stylesheet. It must be an absolute path.
2190
2191       CPACK_IFW_TARGET_DIRECTORY
2192              Default    target    directory     for     installation.      If
2193              CPACK_PACKAGE_INSTALL_DIRECTORY is set, this defaults to @Appli‐
2194              cationsDir@/${CPACK_PACKAGE_INSTALL_DIRECTORY}. If that variable
2195              isn't set either, the default used is @RootDir@/usr/local.  Pre‐
2196              defined variables of the form @...@ are expanded  by  the  QtIFW
2197              scripting engine.
2198
2199       CPACK_IFW_ADMIN_TARGET_DIRECTORY
2200              Default  target  directory  for  installation with administrator
2201              rights.
2202
2203              You can use predefined variables.
2204
2205       CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR
2206              New in version 3.11.
2207
2208
2209              Set to OFF if the target directory should not  be  deleted  when
2210              uninstalling.
2211
2212              Is ON by default
2213
2214       CPACK_IFW_PACKAGE_GROUP
2215              The group, which will be used to configure the root package.
2216
2217       CPACK_IFW_PACKAGE_NAME
2218              The  root  package name, which will be used if the configuration
2219              group is not specified.
2220
2221       CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
2222              New in version 3.3.
2223
2224
2225              Name of the default program group for the product in the Windows
2226              Start    menu.     If    not    specified,    it   defaults   to
2227              CPACK_IFW_PACKAGE_NAME.
2228
2229       CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
2230              New in version 3.3.
2231
2232
2233              Filename of the generated maintenance tool.   The  platform-spe‐
2234              cific executable file extension will be appended.
2235
2236              If  not  specified,  QtIFW provides a default name (maintenance‐
2237              tool).
2238
2239       CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
2240              New in version 3.3.
2241
2242
2243              Filename for the  configuration  of  the  generated  maintenance
2244              tool.
2245
2246              If  not  specified, QtIFW uses a default file name (maintenance‐
2247              tool.ini).
2248
2249       CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
2250              New in version 3.3.
2251
2252
2253              Set to ON if the installation path can contain non-ASCII charac‐
2254              ters.   Only supported for QtIFW 2.0 and later. Older QtIFW ver‐
2255              sions will always allow non-ASCII characters.
2256
2257       CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
2258              New in version 3.3.
2259
2260
2261              Set to OFF if the installation path cannot contain space charac‐
2262              ters.
2263
2264              Is ON for QtIFW less 2.0 tools.
2265
2266       CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE
2267              New in version 3.23.
2268
2269
2270              Set to ON if command line interface features should be disabled.
2271              It is OFF by default and will only have an effect if using QtIFW
2272              4.0 or later.
2273
2274       CPACK_IFW_PACKAGE_CONTROL_SCRIPT
2275              New in version 3.3.
2276
2277
2278              Filename for a custom installer control script.
2279
2280       CPACK_IFW_PACKAGE_RESOURCES
2281              New in version 3.7.
2282
2283
2284              List  of additional resources (.qrc files) to include in the in‐
2285              staller binary. They should be specified as absolute  paths  and
2286              no two resource files can have the same file name.
2287
2288              You can use the cpack_ifw_add_package_resources() command to re‐
2289              solve relative paths.
2290
2291       CPACK_IFW_PACKAGE_FILE_EXTENSION
2292              New in version 3.10.
2293
2294
2295              The target binary extension.
2296
2297              On Linux, the name of the target  binary  is  automatically  ex‐
2298              tended with .run, if you do not specify the extension.
2299
2300              On Windows, the target is created as an application with the ex‐
2301              tension .exe, which is automatically added, if not supplied.
2302
2303              On Mac, the target is created as an DMG disk image with the  ex‐
2304              tension .dmg, which is automatically added, if not supplied.
2305
2306       CPACK_IFW_REPOSITORIES_ALL
2307              The list of remote repositories.
2308
2309              The default value of this variable is computed by CPack and con‐
2310              tains all repositories added with cpack_ifw_add_repository()  or
2311              updated with cpack_ifw_update_repository().
2312
2313       CPACK_IFW_DOWNLOAD_ALL
2314              If  this  is  ON, all components will be downloaded. If not set,
2315              the      behavior      is      determined       by       whether
2316              cpack_configure_downloads()  has been called with the ALL option
2317              or not.
2318
2319       CPACK_IFW_PACKAGE_PRODUCT_IMAGES
2320              New in version 3.23.
2321
2322
2323              A list of images to be  shown  on  the  PerformInstallationPage.
2324              These  must be absolute paths and the images must be in PNG for‐
2325              mat.
2326
2327              This feature is available for QtIFW 4.0.0 and later.
2328
2329       CPACK_IFW_PACKAGE_RUN_PROGRAM
2330              New in version 3.23.
2331
2332
2333              Command executed after the installer is finished,  if  the  user
2334              accepts the action. Provide the full path to the application, as
2335              found when installed.  This typically means the path should  be‐
2336              gin with the QtIFW predefined variable @TargetDir@.
2337
2338              This feature is available for QtIFW 4.0.0 and later.
2339
2340       CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS
2341              New in version 3.23.
2342
2343
2344              List   of   arguments   passed   to  the  program  specified  in
2345              CPACK_IFW_PACKAGE_RUN_PROGRAM.
2346
2347              This feature is available for QtIFW 4.0.0 and later.
2348
2349       CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION
2350              New in version 3.23.
2351
2352
2353              Text shown next to the check box for running the  program  after
2354              the installation. If CPACK_IFW_PACKAGE_RUN_PROGRAM is set but no
2355              description is provided, QtIFW will use a default  message  like
2356              Run <Name> now.
2357
2358              This feature is available for QtIFW 4.0.0 and later.
2359
2360       CPACK_IFW_PACKAGE_SIGNING_IDENTITY
2361              New in version 3.23.
2362
2363
2364              Allows specifying a code signing identity to be used for signing
2365              the generated app bundle. Only available on  macOS,  ignored  on
2366              other platforms.
2367
2368       CPACK_IFW_ARCHIVE_FORMAT
2369              New in version 3.23.
2370
2371
2372              Set  the format used when packaging new component data archives.
2373              If you omit this option, the 7z format will be  used  as  a  de‐
2374              fault. Supported formats:
2375
2376              • 7z
2377
2378              • zip
2379
2380              • tar.gz
2381
2382              • tar.bz2
2383
2384              • tar.xz
2385
2386              NOTE:
2387                 If  the  Qt  Installer  Framework  tools  were  built without
2388                 libarchive support, only 7z format is supported.
2389
2390              This feature is available for QtIFW 4.2.0 and later.
2391
2392       CPACK_IFW_ARCHIVE_COMPRESSION
2393              New in version 3.23.
2394
2395
2396              Archive compression level. The allowable values are:
2397
2398                 • 0 (No compression)
2399
2400                 • 1 (Fastest compression)
2401
2402                 • 3 (Fast compression)
2403
2404                 • 5 (Normal compression)
2405
2406                 • 7 (Maximum compression)
2407
2408                 • 9 (Ultra compression)
2409
2410              If this variable is not set, QtIFW will use a  default  compres‐
2411              sion level, which will typically be 5 (Normal compression).
2412
2413              NOTE:
2414                 Some  formats do not support all the possible values. For ex‐
2415                 ample zip compression only supports values from 1 to 7.
2416
2417              This feature is available for QtIFW 4.2.0 and later.
2418
2419   Components
2420       CPACK_IFW_RESOLVE_DUPLICATE_NAMES
2421              Resolve duplicate names when installing components with groups.
2422
2423       CPACK_IFW_PACKAGES_DIRECTORIES
2424              Additional prepared packages directories that will  be  used  to
2425              resolve dependent components.
2426
2427       CPACK_IFW_REPOSITORIES_DIRECTORIES
2428              New in version 3.10.
2429
2430
2431              Additional  prepared repository directories that will be used to
2432              resolve and repack dependent components.
2433
2434              This feature is available for QtIFW 3.1 and later.
2435
2436   QtIFW Tools
2437       CPACK_IFW_FRAMEWORK_VERSION
2438              New in version 3.3.
2439
2440
2441              The version of the QtIFW tools that will be used. This  variable
2442              is set by the CPackIFW module.
2443
2444       The following variables provide the locations of the QtIFW command-line
2445       tools as discovered  by  the  CPackIFW  module.   These  variables  are
2446       cached, and may be configured if needed.
2447
2448       CPACK_IFW_ARCHIVEGEN_EXECUTABLE
2449              New in version 3.19.
2450
2451
2452              The path to archivegen.
2453
2454       CPACK_IFW_BINARYCREATOR_EXECUTABLE
2455              The path to binarycreator.
2456
2457       CPACK_IFW_REPOGEN_EXECUTABLE
2458              The path to repogen.
2459
2460       CPACK_IFW_INSTALLERBASE_EXECUTABLE
2461              The path to installerbase.
2462
2463       CPACK_IFW_DEVTOOL_EXECUTABLE
2464              The path to devtool.
2465
2466   Hints for Finding QtIFW
2467       Generally,  the  CPack  IFW  generator automatically finds QtIFW tools.
2468       The following (in order of precedence) can also be set to  augment  the
2469       locations normally searched by find_program():
2470
2471       CPACK_IFW_ROOT
2472              New in version 3.9.
2473
2474
2475              CMake variable
2476
2477       CPACK_IFW_ROOT
2478              New in version 3.9.
2479
2480
2481              Environment variable
2482
2483       QTIFWDIR
2484              CMake variable
2485
2486       QTIFWDIR
2487              Environment variable
2488
2489       NOTE:
2490          The  specified  path should not contain bin at the end (for example:
2491          D:\\DevTools\\QtIFW2.0.5).
2492
2493   Other Settings
2494   Online installer
2495       By default, this generator generates an offline installer.  This  means
2496       that  all  packaged  files  are  fully  contained in the installer exe‐
2497       cutable.
2498
2499       In contrast, an online installer will download some or  all  components
2500       from a remote server.
2501
2502       The  DOWNLOADED  option  in the cpack_add_component() command specifies
2503       that a component is to be downloaded. Alternatively, the ALL option  in
2504       the  cpack_configure_downloads()  command specifies that all components
2505       are to be be downloaded.
2506
2507       The cpack_ifw_add_repository() command and  the  CPACK_IFW_DOWNLOAD_ALL
2508       variable allow for more specific configuration.
2509
2510       When  there  are  online  components,  CPack will write them to archive
2511       files.  The help page of the CPackComponent module, especially the sec‐
2512       tion  on the cpack_configure_downloads() function, explains how to make
2513       these files accessible from a download URL.
2514
2515   Internationalization
2516       New in version 3.9.
2517
2518
2519       Some variables and command arguments support  internationalization  via
2520       CMake script. This is an optional feature.
2521
2522       Installers  created  by  QtIFW tools have built-in support for interna‐
2523       tionalization and many phrases are localized  to  many  languages,  but
2524       this does not apply to the description of your components and groups.
2525
2526       Localization of the description of your components and groups is useful
2527       for users of your installers.
2528
2529       A localized variable or argument can contain a  single  default  value,
2530       and  after  that a set of pairs with the name of the locale and the lo‐
2531       calized value.
2532
2533       For example:
2534
2535          set(LOCALIZABLE_VARIABLE "Default value"
2536            en "English value"
2537            en_US "American value"
2538            en_GB "Great Britain value"
2539            )
2540
2541   See Also
2542       Qt Installer Framework Manual:
2543
2544       • Index page: https://doc.qt.io/qtinstallerframework/index.html
2545
2546       • Component                                                  Scripting:
2547         https://doc.qt.io/qtinstallerframework/scripting.html
2548
2549       • Predefined                                                 Variables:
2550         https://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
2551
2552       • Promoting                                                    Updates:
2553         https://doc.qt.io/qtinstallerframework/ifw-updates.html
2554
2555       Download Qt Installer Framework for your platform from Qt site:
2556              https://download.qt.io/official_releases/qt-installer-framework
2557
2558   CPack NSIS Generator
2559       CPack Nullsoft Scriptable Install System (NSIS) generator specific  op‐
2560       tions.
2561
2562       Changed  in  version  3.22:  The  NSIS  generator requires NSIS 3.03 or
2563       newer.
2564
2565
2566   Variables specific to CPack NSIS generator
2567       The following variables are specific to the graphical installers  built
2568       on Windows Nullsoft Scriptable Install System.
2569
2570       CPACK_NSIS_INSTALL_ROOT
2571              The  default installation directory presented to the end user by
2572              the NSIS installer is under this root dir.  The  full  directory
2573              presented    to    the    end    user    is:    ${CPACK_NSIS_IN‐
2574              STALL_ROOT}/${CPACK_PACKAGE_INSTALL_DIRECTORY}
2575
2576       CPACK_NSIS_MUI_ICON
2577              An icon filename.  The name of a *.ico file  used  as  the  main
2578              icon for the generated install program.
2579
2580       CPACK_NSIS_MUI_UNIICON
2581              An  icon  filename.   The  name of a *.ico file used as the main
2582              icon for the generated uninstall program.
2583
2584       CPACK_NSIS_INSTALLER_MUI_ICON_CODE
2585              undocumented.
2586
2587       CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
2588              New in version 3.5.
2589
2590
2591              The filename of a bitmap to use as the  NSIS  MUI_WELCOMEFINISH‐
2592              PAGE_BITMAP.
2593
2594       CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP
2595              New in version 3.5.
2596
2597
2598              The filename of a bitmap to use as the NSIS MUI_UNWELCOMEFINISH‐
2599              PAGE_BITMAP.
2600
2601       CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS
2602              Extra NSIS commands that will be added to the beginning  of  the
2603              install  Section,  before  your install tree is available on the
2604              target system.
2605
2606       CPACK_NSIS_EXTRA_INSTALL_COMMANDS
2607              Extra NSIS commands that will be added to the end of the install
2608              Section, after your install tree is available on the target sys‐
2609              tem.
2610
2611       CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
2612              Extra NSIS commands that will be added to the uninstall Section,
2613              before your install tree is removed from the target system.
2614
2615       CPACK_NSIS_COMPRESSOR
2616              The arguments that will be passed to the NSIS SetCompressor com‐
2617              mand.
2618
2619       CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
2620              Ask about uninstalling previous versions first.  If this is  set
2621              to  ON,  then an installer will look for previous installed ver‐
2622              sions and if one is found, ask the user whether to uninstall  it
2623              before proceeding with the install.
2624
2625       CPACK_NSIS_MODIFY_PATH
2626              Modify  PATH  toggle.   If this is set to ON, then an extra page
2627              will appear in the installer that will allow the user to  choose
2628              whether the program directory should be added to the system PATH
2629              variable.
2630
2631       CPACK_NSIS_DISPLAY_NAME
2632              The display name string that appears in the Windows Apps &  fea‐
2633              tures in Control Panel
2634
2635       CPACK_NSIS_PACKAGE_NAME
2636              The title displayed at the top of the installer.
2637
2638       CPACK_NSIS_INSTALLED_ICON_NAME
2639              A path to the executable that contains the installer icon.
2640
2641       CPACK_NSIS_HELP_LINK
2642              URL to a web site providing assistance in installing your appli‐
2643              cation.
2644
2645       CPACK_NSIS_URL_INFO_ABOUT
2646              URL to a web site providing more information about your applica‐
2647              tion.
2648
2649       CPACK_NSIS_CONTACT
2650              Contact information for questions and comments about the instal‐
2651              lation process.
2652
2653       CPACK_NSIS_<compName>_INSTALL_DIRECTORY
2654              New in version 3.7.
2655
2656
2657              Custom install directory for the specified component  <compName>
2658              instead of $INSTDIR.
2659
2660       CPACK_NSIS_CREATE_ICONS_EXTRA
2661              Additional NSIS commands for creating Start Menu shortcuts.
2662
2663       CPACK_NSIS_DELETE_ICONS_EXTRA
2664              Additional NSIS commands to uninstall Start Menu shortcuts.
2665
2666       CPACK_NSIS_EXECUTABLES_DIRECTORY
2667              Creating  NSIS Start Menu links assumes that they are in bin un‐
2668              less this variable is set.  For example, you would set  this  to
2669              exec if your executables are in an exec directory.
2670
2671       CPACK_NSIS_MUI_FINISHPAGE_RUN
2672              Specify an executable to add an option to run on the finish page
2673              of the NSIS installer.
2674
2675       CPACK_NSIS_MENU_LINKS
2676              Specify links in [application] menu.  This should contain a list
2677              of pair link link name. The link may be a URL or a path relative
2678              to installation prefix.  Like:
2679
2680                 set(CPACK_NSIS_MENU_LINKS
2681                     "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html"
2682                     "CMake Help" "https://cmake.org" "CMake Web Site")
2683
2684       CPACK_NSIS_UNINSTALL_NAME
2685              New in version 3.17.
2686
2687
2688              Specify the name of the program to uninstall the  version.   De‐
2689              fault is Uninstall.
2690
2691       CPACK_NSIS_WELCOME_TITLE
2692              New in version 3.17.
2693
2694
2695              The  title  to  display  on  the top of the page for the welcome
2696              page.
2697
2698       CPACK_NSIS_WELCOME_TITLE_3LINES
2699              New in version 3.17.
2700
2701
2702              Display the title in the welcome page on 3 lines instead of 2.
2703
2704       CPACK_NSIS_FINISH_TITLE
2705              New in version 3.17.
2706
2707
2708              The title to display on the top of the page for the finish page.
2709
2710       CPACK_NSIS_FINISH_TITLE_3LINES
2711              New in version 3.17.
2712
2713
2714              Display the title in the finish page on 3 lines instead of 2.
2715
2716       CPACK_NSIS_MUI_HEADERIMAGE
2717              New in version 3.17.
2718
2719
2720              The image to display on the header of installers pages.
2721
2722       CPACK_NSIS_MANIFEST_DPI_AWARE
2723              New in version 3.18.
2724
2725
2726              If set, declares that the installer is DPI-aware.
2727
2728       CPACK_NSIS_BRANDING_TEXT
2729              New in version 3.20.
2730
2731
2732              If set, updates the text at the bottom of  the  install  window.
2733              To set the string to blank, use a space (" ").
2734
2735       CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION
2736              New in version 3.20.
2737
2738
2739              If  set,  trim  down  the size of the control to the size of the
2740              branding text string.  Allowed  values  for  this  variable  are
2741              LEFT,  CENTER  or RIGHT.  If not specified, the default behavior
2742              is LEFT.
2743
2744       CPACK_NSIS_EXECUTABLE
2745              New in version 3.21.
2746
2747
2748              If set, specify the name of the NSIS executable. Default is mak‐
2749              ensis.
2750
2751       CPACK_NSIS_IGNORE_LICENSE_PAGE
2752              New in version 3.22.
2753
2754
2755              If  set,  do  not display the page containing the license during
2756              installation.
2757
2758       CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS
2759              New in version 3.25.
2760
2761
2762              This variable is a  semicolon-separated  list  of  arguments  to
2763              prepend  to  the  nsis  script  to run.  If the arguments do not
2764              start with a / or a -, it will add one automatically to the cor‐
2765              responding arguments.  The command that will be run is:
2766
2767                 makensis.exe <preArgs>... "nsisFileName.nsi" <postArgs>...
2768
2769              where   <preArgs>...   is   constructed   from   CPACK_NSIS_EXE‐
2770              CUTABLE_PRE_ARGUMENTS and  <postArgs>...   is  constructed  from
2771              CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS.
2772
2773       CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS
2774              New in version 3.25.
2775
2776
2777              This  variable is a semicolon-separated list of arguments to ap‐
2778              pend to the nsis script to run.  If the arguments do  not  start
2779              with  a  /  or  a -, it will add one automatically to the corre‐
2780              sponding arguments.  The command that will be run is:
2781
2782                 makensis.exe <preArgs>... "nsisFileName.nsi" <postArgs>...
2783
2784              where   <preArgs>...   is   constructed   from   CPACK_NSIS_EXE‐
2785              CUTABLE_PRE_ARGUMENTS  and  <postArgs>...   is  constructed from
2786              CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS.
2787
2788   CPack NuGet Generator
2789       New in version 3.12.
2790
2791
2792       When build a NuGet package there is no direct way to control an  output
2793       filename  due a lack of the corresponding CLI option of NuGet, so there
2794       is no CPACK_NUGET_PACKAGE_FILE_NAME variable. To form the output  file‐
2795       name  NuGet  uses  the  package  name  and the version according to its
2796       built-in rules.
2797
2798       Also,  be   aware   that   including   a   top   level   directory   (‐
2799       CPACK_INCLUDE_TOPLEVEL_DIRECTORY) is ignored by this generator.
2800
2801   Variables specific to CPack NuGet generator
2802       The  CPack  NuGet  generator may be used to create NuGet packages using
2803       CPack. The CPack NuGet generator is a CPack generator thus it uses  the
2804       CPACK_XXX variables used by CPack.
2805
2806       The CPack NuGet generator has specific features which are controlled by
2807       the specifics CPACK_NUGET_XXX variables. In the "one  per  group"  mode
2808       (see  CPACK_COMPONENTS_GROUPING),  <compName>  placeholder in the vari‐
2809       ables below would contain a group name (uppercased and  turned  into  a
2810       "C" identifier).
2811
2812       List of CPack NuGet generator specific variables:
2813
2814       CPACK_NUGET_COMPONENT_INSTALL
2815              Enable component packaging for CPack NuGet generator
2816
2817              Mandatory
2818                     No
2819
2820              Default
2821                     OFF
2822
2823       CPACK_NUGET_PACKAGE_NAME
2824
2825       CPACK_NUGET_<compName>_PACKAGE_NAME
2826              The  NUGET package name. CPACK_NUGET_PACKAGE_NAME is used as the
2827              package id on nuget.org
2828
2829              Mandatory
2830                     Yes
2831
2832              Default
2833                     CPACK_PACKAGE_NAME
2834
2835       CPACK_NUGET_PACKAGE_VERSION
2836
2837       CPACK_NUGET_<compName>_PACKAGE_VERSION
2838              The NuGet package version.
2839
2840              Mandatory
2841                     Yes
2842
2843              Default
2844                     CPACK_PACKAGE_VERSION
2845
2846       CPACK_NUGET_PACKAGE_DESCRIPTION
2847
2848       CPACK_NUGET_<compName>_PACKAGE_DESCRIPTION
2849              A long description of the package for UI display.
2850
2851              Mandatory
2852                     Yes
2853
2854              Default
2855
2856CPACK_COMPONENT_<compName>_DESCRIPTION,
2857
2858CPACK_COMPONENT_GROUP_<groupName>_DESCRIPTION,
2859
2860CPACK_PACKAGE_DESCRIPTION
2861
2862       CPACK_NUGET_PACKAGE_AUTHORS
2863
2864       CPACK_NUGET_<compName>_PACKAGE_AUTHORS
2865              A comma-separated list of packages authors, matching the profile
2866              names  on nuget.org. These are displayed in the NuGet Gallery on
2867              nuget.org and are used to cross-reference packages by  the  same
2868              authors.
2869
2870              Mandatory
2871                     Yes
2872
2873              Default
2874                     CPACK_PACKAGE_VENDOR
2875
2876       CPACK_NUGET_PACKAGE_TITLE
2877
2878       CPACK_NUGET_<compName>_PACKAGE_TITLE
2879              A human-friendly title of the package, typically used in UI dis‐
2880              plays as on nuget.org and the Package Manager in Visual  Studio.
2881              If not specified, the package ID is used.
2882
2883              Mandatory
2884                     No
2885
2886              Default
2887
2888CPACK_COMPONENT_<compName>_DISPLAY_NAME,
2889
2890CPACK_COMPONENT_GROUP_<groupName>_DISPLAY_NAME
2891
2892       CPACK_NUGET_PACKAGE_OWNERS
2893
2894       CPACK_NUGET_<compName>_PACKAGE_OWNERS
2895              A  comma-separated  list  of  the package creators using profile
2896              names on nuget.org. This is often the same list as  in  authors,
2897              and is ignored when uploading the package to nuget.org.
2898
2899              Mandatory
2900                     No
2901
2902              Default
2903                     None
2904
2905       CPACK_NUGET_PACKAGE_HOMEPAGE_URL
2906
2907       CPACK_NUGET_<compName>_PACKAGE_HOMEPAGE_URL
2908              An  URL  for the package's home page, often shown in UI displays
2909              as well as nuget.org.
2910
2911              Mandatory
2912                     No
2913
2914              Default
2915                     CPACK_PACKAGE_HOMEPAGE_URL
2916
2917       CPACK_NUGET_PACKAGE_LICENSEURL
2918
2919       CPACK_NUGET_<compName>_PACKAGE_LICENSEURL
2920              Deprecated since version 3.20:  Use  a  local  license  file  (‐
2921              CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME) or a SPDX license identi‐
2922              fier (CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION) instead.
2923
2924
2925              An URL for the package's license, often shown in UI displays  as
2926              well as on nuget.org.
2927
2928              Mandatory
2929                     No
2930
2931              Default
2932                     None
2933
2934       CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION
2935
2936       CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION
2937              New in version 3.20.
2938
2939
2940              A Software Package Data Exchange SPDX license identifier such as
2941              MIT, BSD-3-Clause, or LGPL-3.0-or-later. In the case of a choice
2942              of  licenses  or more complex restrictions, compound license ex‐
2943              pressions may be formed using boolean operators, for example MIT
2944              OR  BSD-3-Clause.   See  the  SPDX specification for guidance on
2945              forming complex license expressions.
2946
2947              If    CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME    is     specified,
2948              CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION is ignored.
2949
2950              Mandatory
2951                     No
2952
2953              Default
2954                     None
2955
2956       CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME
2957
2958       CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME
2959              The package's license file in .txt or .md format.
2960
2961              If     CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME    is    specified,
2962              CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION is ignored.
2963
2964              New in version 3.20.
2965
2966
2967              Mandatory
2968                     No
2969
2970              Default
2971                     None
2972
2973       CPACK_NUGET_PACKAGE_ICONURL
2974
2975       CPACK_NUGET_<compName>_PACKAGE_ICONURL
2976              Deprecated  since  version  3.20:  Use  a  local  icon  file  (‐
2977              CPACK_NUGET_PACKAGE_ICON) instead.
2978
2979
2980              An  URL for a 64x64 image with transparency background to use as
2981              the icon for the package in UI display.
2982
2983              Mandatory
2984                     No
2985
2986              Default
2987                     None
2988
2989       CPACK_NUGET_PACKAGE_REQUIRE_LICENSE_ACCEPTANCE
2990              When set to a true value, the user will be  prompted  to  accept
2991              the license before installing the package.
2992
2993              Mandatory
2994                     No
2995
2996              Default
2997                     None
2998
2999       CPACK_NUGET_PACKAGE_ICON
3000
3001       CPACK_NUGET_<compName>_PACKAGE_ICON
3002              New in version 3.20.
3003
3004
3005              The  filename  of  a 64x64 image with transparency background to
3006              use as the icon for the package in UI display.
3007
3008              Mandatory
3009                     No
3010
3011              Default
3012                     None
3013
3014       CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY
3015
3016       CPACK_NUGET_<compName>_PACKAGE_DESCRIPTION_SUMMARY
3017              A short description of the package for UI display. If omitted, a
3018              truncated version of description is used.
3019
3020              Mandatory
3021                     No
3022
3023              Default
3024                     CPACK_PACKAGE_DESCRIPTION_SUMMARY
3025
3026       CPACK_NUGET_PACKAGE_RELEASE_NOTES
3027
3028       CPACK_NUGET_<compName>_PACKAGE_RELEASE_NOTES
3029              A  description  of the changes made in this release of the pack‐
3030              age, often used in UI like the Updates tab of the Visual  Studio
3031              Package Manager in place of the package description.
3032
3033              Mandatory
3034                     No
3035
3036              Default
3037                     None
3038
3039       CPACK_NUGET_PACKAGE_COPYRIGHT
3040
3041       CPACK_NUGET_<compName>_PACKAGE_COPYRIGHT
3042              Copyright details for the package.
3043
3044              Mandatory
3045                     No
3046
3047              Default
3048                     None
3049
3050       CPACK_NUGET_PACKAGE_LANGUAGE
3051
3052       CPACK_NUGET_<compName>_PACKAGE_LANGUAGE
3053              New in version 3.20.
3054
3055
3056              Locale specifier for the package, for example en_CA.
3057
3058              Mandatory
3059                     No
3060
3061              Default
3062                     None
3063
3064       CPACK_NUGET_PACKAGE_TAGS
3065
3066       CPACK_NUGET_<compName>_PACKAGE_TAGS
3067              A  space-delimited  list  of tags and keywords that describe the
3068              package and aid discoverability of packages through  search  and
3069              filtering.
3070
3071              Mandatory
3072                     No
3073
3074              Default
3075                     None
3076
3077       CPACK_NUGET_PACKAGE_DEPENDENCIES
3078
3079       CPACK_NUGET_<compName>_PACKAGE_DEPENDENCIES
3080              A list of package dependencies.
3081
3082              Mandatory
3083                     No
3084
3085              Default
3086                     None
3087
3088       CPACK_NUGET_PACKAGE_DEPENDENCIES_<dependency>_VERSION
3089
3090       CPACK_NUGET_<compName>_PACKAGE_DEPENDENCIES_<dependency>_VERSION
3091              A  version  specification  for  the particular dependency, where
3092              <dependency> is an item  of  the  dependency  list  (see  above)
3093              transformed with string(MAKE_C_IDENTIFIER) command.
3094
3095              Mandatory
3096                     No
3097
3098              Default
3099                     None
3100
3101       CPACK_NUGET_PACKAGE_DEBUG
3102              Enable debug messages while executing CPack NuGet generator.
3103
3104              Mandatory
3105                     No
3106
3107              Default
3108                     OFF
3109
3110   CPack PackageMaker Generator
3111       Removed.   This once generated PackageMaker installers, but the genera‐
3112       tor has been removed since CMake 3.24.  Xcode no longer distributes the
3113       PackageMaker tools.  Use the CPack productbuild Generator instead.
3114
3115   CPack productbuild Generator
3116       New in version 3.7.
3117
3118
3119       productbuild CPack generator (macOS).
3120
3121   Variables specific to CPack productbuild generator
3122       The following variable is specific to installers built on Mac macOS us‐
3123       ing ProductBuild:
3124
3125       CPACK_COMMAND_PRODUCTBUILD
3126              Path to the productbuild(1) command used to generate  a  product
3127              archive for the macOS Installer or Mac App Store.  This variable
3128              can be used to override the automatically detected  command  (or
3129              specify its location if the auto-detection fails to find it).
3130
3131       CPACK_PRODUCTBUILD_IDENTIFIER
3132              New in version 3.23.
3133
3134
3135              Set  the unique (non-localized) product identifier to be associ‐
3136              ated with the product (i.e., com.kitware.cmake).  Any  component
3137              product names will be appended to this value.
3138
3139       CPACK_PRODUCTBUILD_IDENTITY_NAME
3140              New in version 3.8.
3141
3142
3143              Adds a digital signature to the resulting package.
3144
3145       CPACK_PRODUCTBUILD_KEYCHAIN_PATH
3146              New in version 3.8.
3147
3148
3149              Specify a specific keychain to search for the signing identity.
3150
3151       CPACK_COMMAND_PKGBUILD
3152              Path to the pkgbuild(1) command used to generate an macOS compo‐
3153              nent package on macOS.  This variable can be  used  to  override
3154              the  automatically  detected command (or specify its location if
3155              the auto-detection fails to find it).
3156
3157       CPACK_PKGBUILD_IDENTITY_NAME
3158              New in version 3.8.
3159
3160
3161              Adds a digital signature to the resulting package.
3162
3163       CPACK_PKGBUILD_KEYCHAIN_PATH
3164              New in version 3.8.
3165
3166
3167              Specify a specific keychain to search for the signing identity.
3168
3169       CPACK_PREFLIGHT_<COMP>_SCRIPT
3170              Full path to a file that will be used as the  preinstall  script
3171              for  the  named  <COMP> component's package, where <COMP> is the
3172              uppercased component name.  No preinstall  script  is  added  if
3173              this variable is not defined for a given component.
3174
3175       CPACK_POSTFLIGHT_<COMP>_SCRIPT
3176              Full  path to a file that will be used as the postinstall script
3177              for the named <COMP> component's package, where  <COMP>  is  the
3178              uppercased  component  name.   No postinstall script is added if
3179              this variable is not defined for a given component.
3180
3181       CPACK_PRODUCTBUILD_RESOURCES_DIR
3182              New in version 3.9.
3183
3184
3185              If specified the productbuild generator copies files  from  this
3186              directory (including subdirectories) to the Resources directory.
3187              This   is   done   before    the    CPACK_RESOURCE_FILE_WELCOME,
3188              CPACK_RESOURCE_FILE_README,    and   CPACK_RESOURCE_FILE_LICENSE
3189              files are copied.
3190
3191       CPACK_PRODUCTBUILD_DOMAINS
3192              New in version 3.23.
3193
3194
3195              This option enables more granular control over where the product
3196              may  be  installed. When it is set to true, a domains element of
3197              the following form will be added to the  productbuild  Distribu‐
3198              tion XML:
3199
3200                 <domains enable_anywhere="true" enable_currentUserHome="false" enable_localSystem="true"/>
3201
3202              The  default  values  are  as shown above, but can be overridden
3203              with                        CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE,
3204              CPACK_PRODUCTBUILD_DOMAINS_USER,                             and
3205              CPACK_PRODUCTBUILD_DOMAINS_ROOT.
3206
3207       CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE
3208              New in version 3.23.
3209
3210
3211              May be used to override the enable_anywhere attribute in the do‐
3212              mains  element  of  the  Distribution XML. When set to true, the
3213              product can be installed at the root of  any  volume,  including
3214              non-system volumes.
3215
3216              CPACK_PRODUCTBUILD_DOMAINS must be set to true for this variable
3217              to have any effect.
3218
3219       CPACK_PRODUCTBUILD_DOMAINS_USER
3220              New in version 3.23.
3221
3222
3223              May be used to override the enable_currentUserHome attribute  in
3224              the  domains  element of the Distribution XML. When set to true,
3225              the product can be installed into the current user's home direc‐
3226              tory.  Note that when installing into the user's home directory,
3227              the following additional requirements will apply:
3228
3229              • The installer may not write outside the user's home directory.
3230
3231              • The install will be performed as the current user rather  than
3232                as     root.      This     may    have    ramifications    for
3233                CPACK_PREFLIGHT_<COMP>_SCRIPT                              and
3234                CPACK_POSTFLIGHT_<COMP>_SCRIPT.
3235
3236              • Administrative  privileges  will  not be needed to perform the
3237                install.
3238
3239              CPACK_PRODUCTBUILD_DOMAINS must be set to true for this variable
3240              to have any effect.
3241
3242       CPACK_PRODUCTBUILD_DOMAINS_ROOT
3243              New in version 3.23.
3244
3245
3246              May  be used to override the enable_localSystem attribute in the
3247              domains element of the Distribution XML. When set to  true,  the
3248              product can be installed in the root directory. This should nor‐
3249              mally be set to true unless the product should only be installed
3250              to the user's home directory.
3251
3252              CPACK_PRODUCTBUILD_DOMAINS must be set to true for this variable
3253              to have any effect.
3254
3255   Background Image
3256       New in version 3.17.
3257
3258
3259       This group of variables controls the background image of the  generated
3260       installer.
3261
3262       CPACK_PRODUCTBUILD_BACKGROUND
3263              Adds  a  background  to Distribution XML if specified. The value
3264              contains the path to image in Resources directory.
3265
3266       CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT
3267              Adds an alignment attribute to the  background  in  Distribution
3268              XML.  Refer to Apple documentation for valid values.
3269
3270       CPACK_PRODUCTBUILD_BACKGROUND_SCALING
3271              Adds  a scaling attribute to the background in Distribution XML.
3272              Refer to Apple documentation for valid values.
3273
3274       CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE
3275              Adds a mime-type attribute to  the  background  in  Distribution
3276              XML.  The option contains MIME type of an image.
3277
3278       CPACK_PRODUCTBUILD_BACKGROUND_UTI
3279              Adds  an  uti  attribute  to the background in Distribution XML.
3280              The option contains UTI type of an image.
3281
3282       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA
3283              Adds a background for the Dark Aqua theme to Distribution XML if
3284              specified. The value contains the path to image in Resources di‐
3285              rectory.
3286
3287       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_ALIGNMENT
3288              Does the same as CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT option,
3289              but for the dark theme.
3290
3291       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_SCALING
3292              Does  the  same as CPACK_PRODUCTBUILD_BACKGROUND_SCALING option,
3293              but for the dark theme.
3294
3295       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_MIME_TYPE
3296              Does the same as CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE option,
3297              but for the dark theme.
3298
3299       CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_UTI
3300              Does  the  same as CPACK_PRODUCTBUILD_BACKGROUND_UTI option, but
3301              for the dark theme.
3302
3303   Distribution XML Template
3304       CPack uses a template file to generate the distribution.dist file  used
3305       internally  by  this  package generator. Ordinarily, CMake provides the
3306       template file, but projects may supply their  own  by  placing  a  file
3307       called  CPack.distribution.dist.in  in one of the directories listed in
3308       the CMAKE_MODULE_PATH variable. CPack will then pick up  the  project's
3309       template file instead of using its own.
3310
3311       The  distribution.dist  file  is  generated by performing substitutions
3312       similar to the configure_file() command. Any variable  set  when  CPack
3313       runs will be available for substitution using the usual @...@ form. The
3314       following variables are also set internally and made available for sub‐
3315       stitution:
3316
3317       CPACK_RESOURCE_FILE_LICENSE_NOPATH
3318              Same  as  CPACK_RESOURCE_FILE_LICENSE  except  without the path.
3319              The named file will be available in the same  directory  as  the
3320              generated distribution.dist file.
3321
3322       CPACK_RESOURCE_FILE_README_NOPATH
3323              Same as CPACK_RESOURCE_FILE_README except without the path.  The
3324              named file will be available in the same directory as the gener‐
3325              ated distribution.dist file.
3326
3327       CPACK_RESOURCE_FILE_WELCOME_NOPATH
3328              Same  as  CPACK_RESOURCE_FILE_WELCOME  except  without the path.
3329              The named file will be available in the same  directory  as  the
3330              generated distribution.dist file.
3331
3332       CPACK_APPLE_PKG_INSTALLER_CONTENT
3333              New in version 3.23.
3334
3335
3336              This  contains  all the XML elements that specify installer-wide
3337              options (including domain details), default backgrounds and  the
3338              choices outline.
3339
3340       CPACK_PACKAGEMAKER_CHOICES
3341              Deprecated since version 3.23.
3342
3343
3344              This  contains  only  the  XML elements that specify the default
3345              backgrounds and the choices outline. It does not include the in‐
3346              staller-wide  options  or  any  domain  details.  Use  CPACK_AP‐
3347              PLE_PKG_INSTALLER_CONTENT instead.
3348
3349   CPack RPM Generator
3350       The built in (binary) CPack RPM generator (Unix only)
3351
3352   Variables specific to CPack RPM generator
3353       The CPack RPM generator may be used to create RPM packages using CPack.
3354       The CPack RPM generator is a CPack generator thus it uses the CPACK_XXX
3355       variables used by CPack.
3356
3357       The CPack RPM generator has specific features which are  controlled  by
3358       the specifics CPACK_RPM_XXX variables.
3359
3360       CPACK_RPM_<COMPONENT>_XXXX  variables may be used in order to have com‐
3361       ponent-specific values.  Note however that <COMPONENT>  refers  to  the
3362       grouping  name written in upper case. It may be either a component name
3363       or a component GROUP name. Usually, those variables correspond  to  RPM
3364       spec  file  entities.  One  may  find information about spec files here
3365       https://rpm.org/documentation.
3366
3367       Changed in version 3.6: <COMPONENT> part of variables is  preferred  to
3368       be   in   upper   case  (e.g.  if  component  is  named  foo  then  use
3369       CPACK_RPM_FOO_XXXX variable name format) as is with other CPACK_<COMPO‐
3370       NENT>_XXXX   variables.    For   the  purposes  of  back  compatibility
3371       (CMake/CPack version 3.5 and lower) support for  same  cased  component
3372       (e.g.  fOo  would be used as CPACK_RPM_fOo_XXXX) is still supported for
3373       variables defined in older versions of CMake/CPack but is  not  guaran‐
3374       teed  for  variables  that will be added in the future. For the sake of
3375       back compatibility same cased component variables also  override  upper
3376       cased versions where both are present.
3377
3378
3379       Here are some CPack RPM generator wiki resources that are here for his‐
3380       toric reasons and are no longer maintained but may still prove useful:
3381
3382https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
3383
3384https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#rpm-unix-only
3385
3386       List of CPack RPM generator specific variables:
3387
3388       CPACK_RPM_COMPONENT_INSTALL
3389              Enable component packaging for CPack RPM generator
3390
3391              Mandatory
3392                     No
3393
3394              Default
3395                     OFF
3396
3397              If enabled (ON) multiple packages are generated.  By  default  a
3398              single package containing files of all components is generated.
3399
3400       CPACK_RPM_PACKAGE_SUMMARY
3401
3402       CPACK_RPM_<component>_PACKAGE_SUMMARY
3403              The RPM package summary.
3404
3405              Mandatory
3406                     Yes
3407
3408              Default
3409                     CPACK_PACKAGE_DESCRIPTION_SUMMARY
3410
3411              New  in  version  3.2: Per-component CPACK_RPM_<component>_PACK‐
3412              AGE_SUMMARY variables.
3413
3414
3415       CPACK_RPM_PACKAGE_NAME
3416
3417       CPACK_RPM_<component>_PACKAGE_NAME
3418              The RPM package name.
3419
3420              Mandatory
3421                     Yes
3422
3423              Default
3424                     CPACK_PACKAGE_NAME
3425
3426              New in version  3.5:  Per-component  CPACK_RPM_<component>_PACK‐
3427              AGE_NAME variables.
3428
3429
3430       CPACK_RPM_FILE_NAME
3431
3432       CPACK_RPM_<component>_FILE_NAME
3433              New in version 3.6.
3434
3435
3436              Package file name.
3437
3438              Mandatory
3439                     Yes
3440
3441              Default
3442                     <CPACK_PACKAGE_FILE_NAME>[-<component>].rpm  with  spaces
3443                     replaced by '-'
3444
3445              This may be set to RPM-DEFAULT to allow rpmbuild tool to  gener‐
3446              ate package file name by itself.  Alternatively provided package
3447              file name must end with .rpm suffix.
3448
3449              NOTE:
3450                 By using user provided spec file, rpm macro  extensions  such
3451                 as  for generating debuginfo packages or by simply using mul‐
3452                 tiple components more than one rpm file may be generated, ei‐
3453                 ther  from  a  single  spec  file or from multiple spec files
3454                 (each component execution produces its own  spec  file).   In
3455                 such cases duplicate file names may occur as a result of this
3456                 variable setting or spec file  content  structure.  Duplicate
3457                 files get overwritten and it is up to the packager to set the
3458                 variables in a manner that will prevent such errors.
3459
3460       CPACK_RPM_MAIN_COMPONENT
3461              New in version 3.8.
3462
3463
3464              Main component that is packaged without component suffix.
3465
3466              Mandatory
3467                     No
3468
3469              Default
3470
3471              This variable can be set to any component or group name so  that
3472              component  or  group  rpm package is generated without component
3473              suffix in filename and package name.
3474
3475       CPACK_RPM_PACKAGE_EPOCH
3476              New in version 3.10.
3477
3478
3479              The RPM package epoch
3480
3481              Mandatory
3482                     No
3483
3484              Default
3485
3486              Optional number that should be incremented  when  changing  ver‐
3487              sioning  schemas  or  fixing  mistakes in the version numbers of
3488              older packages.
3489
3490       CPACK_RPM_PACKAGE_VERSION
3491              The RPM package version.
3492
3493              Mandatory
3494                     Yes
3495
3496              Default
3497                     CPACK_PACKAGE_VERSION
3498
3499       CPACK_RPM_PACKAGE_ARCHITECTURE
3500
3501       CPACK_RPM_<component>_PACKAGE_ARCHITECTURE
3502              The RPM package architecture.
3503
3504              Mandatory
3505                     Yes
3506
3507              Default
3508                     Native architecture output by uname -m
3509
3510              This may be set to noarch if you know you are building a  noarch
3511              package.
3512
3513              New  in  version  3.3: Per-component CPACK_RPM_<component>_PACK‐
3514              AGE_ARCHITECTURE variables.
3515
3516
3517       CPACK_RPM_PACKAGE_RELEASE
3518              The RPM package release.
3519
3520              Mandatory
3521                     Yes
3522
3523              Default
3524                     1
3525
3526              This is the numbering of the RPM package itself, i.e.  the  ver‐
3527              sion  of  the  packaging and not the version of the content (see
3528              CPACK_RPM_PACKAGE_VERSION). One may change the default value  if
3529              the  previous  packaging was buggy and/or you want to put here a
3530              fancy Linux distro specific numbering.
3531
3532       NOTE:
3533          This is the string that goes into the RPM Release: field. Some  dis‐
3534          tros  (e.g.  Fedora, CentOS) require 1%{?dist} format and not just a
3535          number.     %{?dist}    part    can    be    added    by     setting
3536          CPACK_RPM_PACKAGE_RELEASE_DIST.
3537
3538       CPACK_RPM_PACKAGE_RELEASE_DIST
3539              New in version 3.6.
3540
3541
3542              The dist tag that is added  RPM Release: field.
3543
3544              Mandatory
3545                     No
3546
3547              Default
3548                     OFF
3549
3550              This  is  the reported %{dist} tag from the current distribution
3551              or empty %{dist} if RPM macro is not set. If  this  variable  is
3552              set  then  RPM  Release: field value is set to ${CPACK_RPM_PACK‐
3553              AGE_RELEASE}%{?dist}.
3554
3555       CPACK_RPM_PACKAGE_LICENSE
3556              The RPM package license policy.
3557
3558              Mandatory
3559                     Yes
3560
3561              Default
3562                     "unknown"
3563
3564       CPACK_RPM_PACKAGE_GROUP
3565
3566       CPACK_RPM_<component>_PACKAGE_GROUP
3567              The RPM package group.
3568
3569              Mandatory
3570                     Yes
3571
3572              Default
3573                     "unknown"
3574
3575              New in version  3.5:  Per-component  CPACK_RPM_<component>_PACK‐
3576              AGE_GROUP variables.
3577
3578
3579       CPACK_RPM_PACKAGE_VENDOR
3580              The RPM package vendor.
3581
3582              Mandatory
3583                     Yes
3584
3585              Default
3586                     CPACK_PACKAGE_VENDOR if set or "unknown"
3587
3588       CPACK_RPM_PACKAGE_URL
3589
3590       CPACK_RPM_<component>_PACKAGE_URL
3591              The projects URL.
3592
3593              Mandatory
3594                     No
3595
3596              Default
3597                     CMAKE_PROJECT_HOMEPAGE_URL
3598
3599              New in version 3.12: The CMAKE_PROJECT_HOMEPAGE_URL variable.
3600
3601
3602       CPACK_RPM_PACKAGE_DESCRIPTION
3603
3604       CPACK_RPM_<component>_PACKAGE_DESCRIPTION
3605              RPM package description.
3606
3607              Mandatory
3608                     Yes
3609
3610              Default
3611
3612CPACK_COMPONENT_<compName>_DESCRIPTION (component based
3613                       installers only) if set,
3614
3615CPACK_PACKAGE_DESCRIPTION_FILE if set, or
3616
3617no package description available
3618
3619              New in version  3.2:  Per-component  CPACK_RPM_<component>_PACK‐
3620              AGE_DESCRIPTION variables.
3621
3622
3623       CPACK_RPM_COMPRESSION_TYPE
3624              RPM compression type.
3625
3626              Mandatory
3627                     No
3628
3629              Default
3630                     (system default)
3631
3632              May be used to override RPM compression type to be used to build
3633              the RPM. For example some Linux distribution now default to lzma
3634              or  xz compression whereas older cannot use such RPM. Using this
3635              one can enforce compression type to be used.
3636
3637              Possible values are:
3638
3639                 lzma   Lempel–Ziv–Markov chain algorithm
3640
3641                 xz     XZ Utils compression
3642
3643                 bzip2  bzip2 Burrows–Wheeler algorithm
3644
3645                 gzip   GNU Gzip compression
3646
3647       CPACK_RPM_PACKAGE_AUTOREQ
3648
3649       CPACK_RPM_<component>_PACKAGE_AUTOREQ
3650              RPM spec autoreq field.
3651
3652              Mandatory
3653                     No
3654
3655              Default
3656
3657              May be used to enable (1, yes)  or  disable  (0,  no)  automatic
3658              shared libraries dependency detection. Dependencies are added to
3659              requires list.
3660
3661              NOTE:
3662                 By default automatic dependency detection is enabled  by  rpm
3663                 generator.
3664
3665       CPACK_RPM_PACKAGE_AUTOPROV
3666
3667       CPACK_RPM_<component>_PACKAGE_AUTOPROV
3668              RPM spec autoprov field.
3669
3670              Mandatory
3671                     No
3672
3673              Default
3674
3675              May  be  used  to  enable  (1, yes) or disable (0, no) automatic
3676              listing of shared libraries that are provided  by  the  package.
3677              Shared libraries are added to provides list.
3678
3679              NOTE:
3680                 By  default  automatic  provides  detection is enabled by rpm
3681                 generator.
3682
3683       CPACK_RPM_PACKAGE_AUTOREQPROV
3684
3685       CPACK_RPM_<component>_PACKAGE_AUTOREQPROV
3686              RPM spec autoreqprov field.
3687
3688              Mandatory
3689                     No
3690
3691              Default
3692
3693              Variable enables/disables autoreq and autoprov at the same time.
3694              See CPACK_RPM_PACKAGE_AUTOREQ and CPACK_RPM_PACKAGE_AUTOPROV for
3695              more details.
3696
3697              NOTE:
3698                 By default automatic detection feature is enabled by rpm.
3699
3700       CPACK_RPM_PACKAGE_REQUIRES
3701
3702       CPACK_RPM_<component>_PACKAGE_REQUIRES
3703              RPM spec requires field.
3704
3705              Mandatory
3706                     No
3707
3708              Default
3709
3710              May be used to set RPM dependencies (requires).  Note  that  you
3711              must  enclose  the  complete requires string between quotes, for
3712              example:
3713
3714                 set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
3715
3716              The required package list of an RPM file could be printed with:
3717
3718                 rpm -qp --requires file.rpm
3719
3720       CPACK_RPM_PACKAGE_CONFLICTS
3721
3722       CPACK_RPM_<component>_PACKAGE_CONFLICTS
3723              RPM spec conflicts field.
3724
3725              Mandatory
3726                     No
3727
3728              Default
3729
3730              May be used to set negative RPM dependencies  (conflicts).  Note
3731              that  you  must  enclose  the  complete  requires string between
3732              quotes, for example:
3733
3734                 set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
3735
3736              The conflicting package list of an RPM  file  could  be  printed
3737              with:
3738
3739                 rpm -qp --conflicts file.rpm
3740
3741       CPACK_RPM_PACKAGE_REQUIRES_PRE
3742
3743       CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE
3744              New in version 3.2.
3745
3746
3747              RPM spec requires(pre) field.
3748
3749              Mandatory
3750                     No
3751
3752              Default
3753
3754              May  be used to set RPM preinstall dependencies (requires(pre)).
3755              Note that you must enclose the complete requires string  between
3756              quotes, for example:
3757
3758                 set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
3759
3760       CPACK_RPM_PACKAGE_REQUIRES_POST
3761
3762       CPACK_RPM_<component>_PACKAGE_REQUIRES_POST
3763              New in version 3.2.
3764
3765
3766              RPM spec requires(post) field.
3767
3768              Mandatory
3769                     No
3770
3771              Default
3772
3773              May   be   used   to   set  RPM  postinstall  dependencies  (re‐
3774              quires(post)). Note that you must enclose the complete  requires
3775              string between quotes, for example:
3776
3777                 set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
3778
3779       CPACK_RPM_PACKAGE_REQUIRES_POSTUN
3780
3781       CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN
3782              New in version 3.2.
3783
3784
3785              RPM spec requires(postun) field.
3786
3787              Mandatory
3788                     No
3789
3790              Default
3791
3792              May be used to set RPM postuninstall dependencies (requires(pos‐
3793              tun)). Note that you must enclose the complete  requires  string
3794              between quotes, for example:
3795
3796                 set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
3797
3798       CPACK_RPM_PACKAGE_REQUIRES_PREUN
3799
3800       CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN
3801              New in version 3.2.
3802
3803
3804              RPM spec requires(preun) field.
3805
3806              Mandatory
3807                     No
3808
3809              Default
3810
3811              May   be   used   to  set  RPM  preuninstall  dependencies  (re‐
3812              quires(preun)). Note that you must enclose the complete requires
3813              string between quotes, for example:
3814
3815                 set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
3816
3817       CPACK_RPM_PACKAGE_SUGGESTS
3818
3819       CPACK_RPM_<component>_PACKAGE_SUGGESTS
3820              RPM spec suggest field.
3821
3822              Mandatory
3823                     No
3824
3825              Default
3826
3827              May be used to set weak RPM dependencies (suggests). If rpmbuild
3828              doesn't support the Suggests tag, CPack will emit a warning  and
3829              ignore  this  variable.  Note that you must enclose the complete
3830              requires string between quotes.
3831
3832       CPACK_RPM_PACKAGE_PROVIDES
3833
3834       CPACK_RPM_<component>_PACKAGE_PROVIDES
3835              RPM spec provides field.
3836
3837              Mandatory
3838                     No
3839
3840              Default
3841
3842              May be used to set RPM  dependencies  (provides).  The  provided
3843              package list of an RPM file could be printed with:
3844
3845                 rpm -qp --provides file.rpm
3846
3847       CPACK_RPM_PACKAGE_OBSOLETES
3848
3849       CPACK_RPM_<component>_PACKAGE_OBSOLETES
3850              RPM spec obsoletes field.
3851
3852              Mandatory
3853                     No
3854
3855              Default
3856
3857              May be used to set RPM packages that are obsoleted by this one.
3858
3859       CPACK_RPM_PACKAGE_RELOCATABLE
3860              build a relocatable RPM.
3861
3862              Mandatory
3863                     No
3864
3865              Default
3866                     CPACK_PACKAGE_RELOCATABLE
3867
3868              If  this  variable is set to TRUE or ON, the CPack RPM generator
3869              will try to build a relocatable RPM package. A  relocatable  RPM
3870              may be installed using:
3871
3872                 rpm --prefix or --relocate
3873
3874              in  order  to  install it at an alternate place see rpm(8). Note
3875              that currently this may fail if CPACK_SET_DESTDIR is set to  ON.
3876              If  CPACK_SET_DESTDIR is set then you will get a warning message
3877              but if there is file installed with absolute path you'll get un‐
3878              expected behavior.
3879
3880       CPACK_RPM_SPEC_INSTALL_POST
3881              Deprecated  since version 2.8.12: Use CPACK_RPM_SPEC_MORE_DEFINE
3882              instead.
3883
3884
3885              Mandatory
3886                     No
3887
3888              Default
3889
3890              May be used to override the __spec_install_post  section  within
3891              the  generated  spec file.  This affects the install step during
3892              package creation, not during package installation.   For  adding
3893              operations  to  be  performed  during  package installation, use
3894              CPACK_RPM_POST_INSTALL_SCRIPT_FILE instead.
3895
3896       CPACK_RPM_SPEC_MORE_DEFINE
3897              RPM extended spec definitions lines.
3898
3899              Mandatory
3900                     No
3901
3902              Default
3903
3904              May be used to add any %define lines to the generated spec file.
3905              An  example  of  its  use is to prevent stripping of executables
3906              (but note that this may also disable other default post  install
3907              processing):
3908
3909                 set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
3910
3911       CPACK_RPM_PACKAGE_DEBUG
3912              Toggle CPack RPM generator debug output.
3913
3914              Mandatory
3915                     No
3916
3917              Default
3918
3919              May  be set when invoking cpack in order to trace debug informa‐
3920              tion during CPack RPM run. For example you may launch CPack like
3921              this:
3922
3923                 cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
3924
3925       CPACK_RPM_USER_BINARY_SPECFILE
3926
3927       CPACK_RPM_<componentName>_USER_BINARY_SPECFILE
3928              A user provided spec file.
3929
3930              Mandatory
3931                     No
3932
3933              Default
3934
3935              May  be  set  by the user in order to specify a USER binary spec
3936              file to be used by the CPack RPM generator instead of generating
3937              the  file.   The  specified  file  will  be processed by config‐
3938              ure_file( @ONLY).
3939
3940       CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
3941              Spec file template.
3942
3943              Mandatory
3944                     No
3945
3946              Default
3947
3948              If set CPack will generate a template for USER specified  binary
3949              spec  file and stop with an error. For example launch CPack like
3950              this:
3951
3952                 cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
3953
3954              The user may then use this file in order to  hand-craft  is  own
3955              binary     spec     file     which     may    be    used    with
3956              CPACK_RPM_USER_BINARY_SPECFILE.
3957
3958       CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
3959
3960       CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
3961
3962       CPACK_RPM_PRE_TRANS_SCRIPT_FILE
3963              Path  to  file  containing   pre   install/uninstall/transaction
3964              script.
3965
3966              Mandatory
3967                     No
3968
3969              Default
3970
3971              May  be used to embed a pre installation/uninstallation/transac‐
3972              tion script in the spec file.   The  referred  script  file  (or
3973              both)  will  be  read  and directly put after the %pre or %preun
3974              section If CPACK_RPM_COMPONENT_INSTALL is  set  to  ON  the  in‐
3975              stall/uninstall/transaction  script  for  each  component can be
3976              overridden  with  CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE,
3977              CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE,             and
3978              CPACK_RPM_<COMPONENT>_PRE_TRANS_SCRIPT_FILE One may verify which
3979              scriptlet has been included with:
3980
3981                 rpm -qp --scripts  package.rpm
3982
3983              New  in  version 3.18: The CPACK_RPM_PRE_TRANS_SCRIPT_FILE vari‐
3984              able.
3985
3986
3987       CPACK_RPM_POST_INSTALL_SCRIPT_FILE
3988
3989       CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
3990
3991       CPACK_RPM_POST_TRANS_SCRIPT_FILE
3992              Path  to  file  containing  post   install/uninstall/transaction
3993              script.
3994
3995              Mandatory
3996                     No
3997
3998              Default
3999
4000              May be used to embed a post installation/uninstallation/transac‐
4001              tion script in the spec file.   The  referred  script  file  (or
4002              both)  will  be read and directly put after the %post or %postun
4003              section.  If CPACK_RPM_COMPONENT_INSTALL is set to  ON  the  in‐
4004              stall/uninstall/transaction  script  for  each  component can be
4005              overridden with  CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE,
4006              CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE,            and
4007              CPACK_RPM_<COMPONENT>_POST_TRANS_SCRIPT_FILE  One   may   verify
4008              which scriptlet has been included with:
4009
4010                 rpm -qp --scripts  package.rpm
4011
4012              New  in version 3.18: The CPACK_RPM_POST_TRANS_SCRIPT_FILE vari‐
4013              able.
4014
4015
4016       CPACK_RPM_USER_FILELIST
4017
4018       CPACK_RPM_<COMPONENT>_USER_FILELIST
4019
4020              Mandatory
4021                     No
4022
4023              Default
4024
4025              May be used to explicitly specify %(<directive>)  file  line  in
4026              the  spec  file.  Like %config(noreplace) or any other directive
4027              that be found in the %files section. Since the CPack RPM genera‐
4028              tor  is  generating the list of files (and directories) the user
4029              specified files of the CPACK_RPM_<COMPONENT>_USER_FILELIST  list
4030              will  be removed from the generated list. If referring to direc‐
4031              tories do not add a trailing slash.
4032
4033              New in version 3.8: You can have multiple directives  per  line,
4034              as in %attr(600,root,root) %config(noreplace).
4035
4036
4037       CPACK_RPM_CHANGELOG_FILE
4038              RPM changelog file.
4039
4040              Mandatory
4041                     No
4042
4043              Default
4044
4045              May be used to embed a changelog in the spec file.  The referred
4046              file will be read and directly put after the %changelog section.
4047
4048       CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST
4049              list of path to be excluded.
4050
4051              Mandatory
4052                     No
4053
4054              Default
4055
4056                     The following paths are excluded by default:
4057
4058/etc
4059
4060/etc/init.d
4061
4062/usr
4063
4064/usr/bin
4065
4066/usr/include
4067
4068/usr/lib
4069
4070/usr/libx32
4071
4072/usr/lib64
4073
4074/usr/share
4075
4076/usr/share/aclocal
4077
4078/usr/share/doc
4079
4080              May be used to exclude path  (directories  or  files)  from  the
4081              auto-generated  list  of  paths discovered by CPack RPM. The de‐
4082              fault value contains a reasonable set of values if the  variable
4083              is  not  defined  by the user. If the variable is defined by the
4084              user then the CPack RPM generator will NOT any  of  the  default
4085              path.  If you want to add some path to the default list then you
4086              can use CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION variable.
4087
4088              New in version 3.10: Added  /usr/share/aclocal  to  the  default
4089              list of excludes.
4090
4091
4092       CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
4093              additional list of path to be excluded.
4094
4095              Mandatory
4096                     No
4097
4098              Default
4099
4100              May be used to add more exclude path (directories or files) from
4101              the   initial   default   list   of    excluded    paths.    See
4102              CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST.
4103
4104       CPACK_RPM_RELOCATION_PATHS
4105              New in version 3.2.
4106
4107
4108              Packages relocation paths list.
4109
4110              Mandatory
4111                     No
4112
4113              Default
4114
4115              May  be  used to specify more than one relocation path per relo‐
4116              catable RPM.  Variable contains a list of relocation paths  that
4117              if     relative     are     prefixed    by    the    value    of
4118              CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX  or   by   the   value   of
4119              CPACK_PACKAGING_INSTALL_PREFIX  if  the component version is not
4120              provided.  Variable is not component based as its content can be
4121              used to set a different path prefix for e.g. binary dir and doc‐
4122              umentation dir at the same time.  Only  prefixes  that  are  re‐
4123              quired by a certain component are added to that component - com‐
4124              ponent must contain at least  one  file/directory/symbolic  link
4125              with  CPACK_RPM_RELOCATION_PATHS prefix for a certain relocation
4126              path to be added. Package will not contain any relocation  paths
4127              if  there  are no files/directories/symbolic links on any of the
4128              provided prefix locations.  Packages that either do not  contain
4129              any relocation paths or contain files/directories/symbolic links
4130              that are outside relocation paths print  out  an  AUTHOR_WARNING
4131              that RPM will be partially relocatable.
4132
4133       CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
4134              New in version 3.2.
4135
4136
4137              Per component relocation path install prefix.
4138
4139              Mandatory
4140                     No
4141
4142              Default
4143                     CPACK_PACKAGING_INSTALL_PREFIX
4144
4145              May  be used to set per component CPACK_PACKAGING_INSTALL_PREFIX
4146              for relocatable RPM packages.
4147
4148       CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION
4149
4150       CPACK_RPM_NO_<COMPONENT>_INSTALL_PREFIX_RELOCATION
4151              New in version 3.3.
4152
4153
4154              Removal of default install prefix from relocation paths list.
4155
4156              Mandatory
4157                     No
4158
4159              Default
4160                     CPACK_PACKAGING_INSTALL_PREFIX                         or
4161                     CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX  are  treated as one
4162                     of relocation paths
4163
4164              May  be  used  to  remove   CPACK_PACKAGING_INSTALL_PREFIX   and
4165              CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX from relocatable RPM prefix
4166              paths.
4167
4168       CPACK_RPM_ADDITIONAL_MAN_DIRS
4169              New in version 3.3.
4170
4171
4172              Mandatory
4173                     No
4174
4175              Default
4176
4177                     Regular expressions that are added by default were  taken
4178                     from brp-compress RPM macro:
4179
4180/usr/man/man.*
4181
4182/usr/man/.*/man.*
4183
4184/usr/info.*
4185
4186/usr/share/man/man.*
4187
4188/usr/share/man/.*/man.*
4189
4190/usr/share/info.*
4191
4192/usr/kerberos/man.*
4193
4194/usr/X11R6/man/man.*
4195
4196/usr/lib/perl5/man/man.*
4197
4198/usr/share/doc/.*/man/man.*
4199
4200/usr/lib/.*/man/man.*
4201
4202              May be used to set additional man dirs that could potentially be
4203              compressed by brp-compress RPM macro. Variable content must be a
4204              list of regular expressions that point to directories containing
4205              man files or to man files directly. Note that in order  to  com‐
4206              press  man pages a path must also be present in brp-compress RPM
4207              script and that brp-compress script must be added to RPM config‐
4208              uration by the operating system.
4209
4210       CPACK_RPM_DEFAULT_USER
4211
4212       CPACK_RPM_<compName>_DEFAULT_USER
4213              New in version 3.6.
4214
4215
4216              default user ownership of RPM content
4217
4218              Mandatory
4219                     No
4220
4221              Default
4222                     root
4223
4224              Value  should  be  user  name and not UID.  Note that <compName>
4225              must be in upper-case.
4226
4227       CPACK_RPM_DEFAULT_GROUP
4228
4229       CPACK_RPM_<compName>_DEFAULT_GROUP
4230              New in version 3.6.
4231
4232
4233              default group ownership of RPM content
4234
4235              Mandatory
4236                     No
4237
4238              Default
4239                     root
4240
4241              Value should be group name and not GID.   Note  that  <compName>
4242              must be in upper-case.
4243
4244       CPACK_RPM_DEFAULT_FILE_PERMISSIONS
4245
4246       CPACK_RPM_<compName>_DEFAULT_FILE_PERMISSIONS
4247              New in version 3.6.
4248
4249
4250              default permissions used for packaged files
4251
4252              Mandatory
4253                     No
4254
4255              Default
4256                     (system default)
4257
4258              Accepted  values  are  lists with PERMISSIONS. Valid permissions
4259              are:
4260
4261OWNER_READ
4262
4263OWNER_WRITE
4264
4265OWNER_EXECUTE
4266
4267GROUP_READ
4268
4269GROUP_WRITE
4270
4271GROUP_EXECUTE
4272
4273WORLD_READ
4274
4275WORLD_WRITE
4276
4277WORLD_EXECUTE
4278
4279              Note that <compName> must be in upper-case.
4280
4281       CPACK_RPM_DEFAULT_DIR_PERMISSIONS
4282
4283       CPACK_RPM_<compName>_DEFAULT_DIR_PERMISSIONS
4284              New in version 3.6.
4285
4286
4287              default permissions used for packaged directories
4288
4289              Mandatory
4290                     No
4291
4292              Default
4293                     (system default)
4294
4295              Accepted values are lists with  PERMISSIONS.  Valid  permissions
4296              are  the  same  as for CPACK_RPM_DEFAULT_FILE_PERMISSIONS.  Note
4297              that <compName> must be in upper-case.
4298
4299       CPACK_RPM_INSTALL_WITH_EXEC
4300              New in version 3.11.
4301
4302
4303              force execute permissions on programs and shared libraries
4304
4305              Mandatory
4306                     No
4307
4308              Default
4309                     (system default)
4310
4311              Force set owner, group and world execute permissions on programs
4312              and  shared  libraries.  This can be used for creating valid rpm
4313              packages on systems such as Debian where shared libraries do not
4314              have execute permissions set.
4315
4316       NOTE:
4317          Programs  and  shared  libraries without execute permissions are ig‐
4318          nored during separation of debug symbols from the binary for  debug‐
4319          info packages.
4320
4321   Packaging of Symbolic Links
4322       New in version 3.3.
4323
4324
4325       The CPack RPM generator supports packaging of symbolic links:
4326
4327          execute_process(COMMAND ${CMAKE_COMMAND}
4328            -E create_symlink <relative_path_location> <symlink_name>)
4329          install(FILES ${CMAKE_CURRENT_BINARY_DIR}/<symlink_name>
4330            DESTINATION <symlink_location> COMPONENT libraries)
4331
4332       Symbolic  links will be optimized (paths will be shortened if possible)
4333       before being added to the package or if multiple relocation  paths  are
4334       detected, a post install symlink relocation script will be generated.
4335
4336       Symbolic links may point to locations that are not packaged by the same
4337       package (either a different component or even not packaged at all)  but
4338       those  locations  will be treated as if they were a part of the package
4339       while determining if symlink should be either created or present  in  a
4340       post install script - depending on relocation paths.
4341
4342       Changed  in version 3.6: Symbolic links that point to locations outside
4343       packaging path produce a warning and are  treated  as  non  relocatable
4344       permanent symbolic links.  Previous versions of CMake produced an error
4345       in this case.
4346
4347
4348       Currently there are a few limitations though:
4349
4350       • For  component  based  packaging  component  interdependency  is  not
4351         checked  when  processing  symbolic links. Symbolic links pointing to
4352         content of a different component are  treated  the  same  way  as  if
4353         pointing to location that will not be packaged.
4354
4355       • Symbolic  links pointing to a location through one or more intermedi‐
4356         ate symbolic links will not be handled differently - if the  interme‐
4357         diate  symbolic  link(s) is also on a relocatable path, relocating it
4358         during package installation may cause initial symbolic link to  point
4359         to an invalid location.
4360
4361   Packaging of debug information
4362       New in version 3.7.
4363
4364
4365       Debuginfo  packages  contain  debug  symbols  and sources for debugging
4366       packaged binaries.
4367
4368       Debuginfo RPM packaging has its own set of variables:
4369
4370       CPACK_RPM_DEBUGINFO_PACKAGE
4371
4372       CPACK_RPM_<component>_DEBUGINFO_PACKAGE
4373              Enable generation of debuginfo RPM package(s).
4374
4375              Mandatory
4376                     No
4377
4378              Default
4379                     OFF
4380
4381       NOTE:
4382          Binaries must contain debug symbols before packaging so  use  either
4383          Debug or RelWithDebInfo for CMAKE_BUILD_TYPE variable value.
4384
4385          Additionally,  if  CPACK_STRIP_FILES  is  set,  the  files  will  be
4386          stripped before they get to the RPM generator, so will  not  contain
4387          debug symbols and a debuginfo package will not get built. Do not use
4388          with CPACK_STRIP_FILES.
4389
4390       NOTE:
4391          Packages generated from packages without binary files,  with  binary
4392          files  but without execute permissions or without debug symbols will
4393          cause packaging termination.
4394
4395       CPACK_BUILD_SOURCE_DIRS
4396              Provides locations of root  directories  of  source  files  from
4397              which binaries were built.
4398
4399              Mandatory
4400                     Yes if CPACK_RPM_DEBUGINFO_PACKAGE is set
4401
4402              Default
4403
4404       NOTE:
4405          For CMake project CPACK_BUILD_SOURCE_DIRS is set by default to point
4406          to CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR paths.
4407
4408       NOTE:
4409          Sources with path prefixes that do not fall under any location  pro‐
4410          vided  with CPACK_BUILD_SOURCE_DIRS will not be present in debuginfo
4411          package.
4412
4413       CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
4414
4415       CPACK_RPM_<component>_BUILD_SOURCE_DIRS_PREFIX
4416              Prefix of location where sources will be placed  during  package
4417              installation.
4418
4419              Mandatory
4420                     Yes if CPACK_RPM_DEBUGINFO_PACKAGE is set
4421
4422              Default
4423                     /usr/src/debug/${CPACK_PACKAGE_FILE_NAME}  and for compo‐
4424                     nent        packaging        /usr/src/debug/${CPACK_PACK‐
4425                     AGE_FILE_NAME}-<component>
4426
4427       NOTE:
4428          Each  source  path  prefix  is  additionally suffixed by src_<index>
4429          where index is index of the path used  from  CPACK_BUILD_SOURCE_DIRS
4430          variable.     This    produces    ${CPACK_RPM_BUILD_SOURCE_DIRS_PRE‐
4431          FIX}/src_<index> replacement path.  Limitation is that replaced path
4432          part  must  be shorter or of equal length than the length of its re‐
4433          placement.    If     that     is     not     the     case     either
4434          CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX  variable  has  to  be  set  to a
4435          shorter path or source directories must be placed on a longer path.
4436
4437       CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS
4438              Directories containing sources that should be excluded from  de‐
4439              buginfo packages.
4440
4441              Mandatory
4442                     No
4443
4444              Default
4445
4446                     The following paths are excluded by default:
4447
4448/usr
4449
4450/usr/src
4451
4452/usr/src/debug
4453
4454              Listed  paths  are owned by other RPM packages and should there‐
4455              fore not be deleted on debuginfo package uninstallation.
4456
4457       CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION
4458              Paths       that       should       be        appended        to
4459              CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS for exclusion.
4460
4461              Mandatory
4462                     No
4463
4464              Default
4465
4466       CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE
4467              New in version 3.8.
4468
4469
4470              Create  a  single debuginfo package even if components packaging
4471              is set.
4472
4473              Mandatory
4474                     No
4475
4476              Default
4477                     OFF
4478
4479              When this variable is enabled it  produces  a  single  debuginfo
4480              package even if component packaging is enabled.
4481
4482              When using this feature in combination with components packaging
4483              and there is more than  one  component  this  variable  requires
4484              CPACK_RPM_MAIN_COMPONENT to be set.
4485
4486       NOTE:
4487          If  none of the CPACK_RPM_<component>_DEBUGINFO_PACKAGE variables is
4488          set then CPACK_RPM_DEBUGINFO_PACKAGE is automatically set to ON when
4489          CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE is set.
4490
4491       CPACK_RPM_DEBUGINFO_FILE_NAME
4492
4493       CPACK_RPM_<component>_DEBUGINFO_FILE_NAME
4494              New in version 3.9.
4495
4496
4497              Debuginfo package file name.
4498
4499              Mandatory
4500                     No
4501
4502              Default
4503                     rpmbuild tool generated package file name
4504
4505              Alternatively provided debuginfo package file name must end with
4506              .rpm suffix and should differ from file names of other generated
4507              packages.
4508
4509              Variable may contain @cpack_component@ placeholder which will be
4510              replaced by component name if  component  packaging  is  enabled
4511              otherwise it deletes the placeholder.
4512
4513              Setting  the  variable  to RPM-DEFAULT may be used to explicitly
4514              set filename generation to default.
4515
4516       NOTE:
4517          CPACK_RPM_FILE_NAME also supports rpmbuild  tool  generated  package
4518          file  name  -  disabled by default but can be enabled by setting the
4519          variable to RPM-DEFAULT.
4520
4521   Packaging of sources (SRPM)
4522       New in version 3.7.
4523
4524
4525       SRPM packaging is enabled by setting CPACK_RPM_PACKAGE_SOURCES variable
4526       while usually using CPACK_INSTALLED_DIRECTORIES variable to provide di‐
4527       rectory containing CMakeLists.txt and source files.
4528
4529       For CMake projects SRPM package would be produced by executing:
4530
4531          cpack -G RPM --config ./CPackSourceConfig.cmake
4532
4533       NOTE:
4534          Produced SRPM package is expected to be  built  with  cmake(1)  exe‐
4535          cutable  and packaged with cpack(1) executable so CMakeLists.txt has
4536          to be located in root source directory and must be able to  generate
4537          binary  rpm packages by executing cpack -G command. The two executa‐
4538          bles as well as rpmbuild must also be present when generating binary
4539          rpm packages from the produced SRPM package.
4540
4541       Once  the  SRPM  package is generated it can be used to generate binary
4542       packages by creating a directory structure for rpm generation and  exe‐
4543       cuting rpmbuild tool:
4544
4545          mkdir -p build_dir/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
4546          rpmbuild --define "_topdir <path_to_build_dir>" --rebuild <SRPM_file_name>
4547
4548       Generated  packages  will be located in build_dir/RPMS directory or its
4549       sub directories.
4550
4551       NOTE:
4552          SRPM package internally uses CPack/RPM generator to generate  binary
4553          packages  so  CMakeScripts.txt  can decide during the SRPM to binary
4554          rpm generation step what content the package(s) should have as  well
4555          as how they should be packaged (monolithic or components). CMake can
4556          decide this for e.g. by reading environment  variables  set  by  the
4557          package manager before starting the process of generating binary rpm
4558          packages. This way a single SRPM package can be used to produce dif‐
4559          ferent  binary  rpm packages on different platforms depending on the
4560          platform's packaging rules.
4561
4562       Source RPM packaging has its own set of variables:
4563
4564       CPACK_RPM_PACKAGE_SOURCES
4565              Should the content be packaged as a source rpm (default  is  bi‐
4566              nary rpm).
4567
4568              Mandatory
4569                     No
4570
4571              Default
4572                     OFF
4573
4574       NOTE:
4575          For  cmake projects CPACK_RPM_PACKAGE_SOURCES variable is set to OFF
4576          in CPackConfig.cmake and  ON  in  CPackSourceConfig.cmake  generated
4577          files.
4578
4579       CPACK_RPM_SOURCE_PKG_BUILD_PARAMS
4580              Additional  command-line  parameters  provided  to cmake(1) exe‐
4581              cutable.
4582
4583              Mandatory
4584                     No
4585
4586              Default
4587
4588       CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX
4589              Packaging   install   prefix   that   would   be   provided   in
4590              CPACK_PACKAGING_INSTALL_PREFIX variable for producing binary RPM
4591              packages.
4592
4593              Mandatory
4594                     Yes
4595
4596              Default
4597                     /
4598
4599       CPACK_RPM_BUILDREQUIRES
4600              List of source rpm build dependencies.
4601
4602              Mandatory
4603                     No
4604
4605              Default
4606
4607              May  be  used  to  set  source  RPM  build  dependencies  (Buil‐
4608              dRequires).  Note  that  you must enclose the complete build re‐
4609              quirements string between quotes, for example:
4610
4611                 set(CPACK_RPM_BUILDREQUIRES "python >= 2.5.0, cmake >= 2.8")
4612
4613       CPACK_RPM_REQUIRES_EXCLUDE_FROM
4614              New in version 3.22.
4615
4616
4617              Mandatory
4618                     No
4619
4620              Default
4621
4622              May be used to keep the dependency generator from scanning  spe‐
4623              cific  files or directories for dependencies.  Note that you can
4624              use a regular expression that matches all of the directories  or
4625              files, for example:
4626
4627                 set(CPACK_RPM_REQUIRES_EXCLUDE_FROM "bin/libqsqloci.*\\.so.*")
4628
4629   CPack WIX Generator
4630       CPack WIX generator specific options
4631
4632       New  in  version 3.7: Support CPACK_COMPONENT_<compName>_DISABLED vari‐
4633       able.
4634
4635
4636   Variables specific to CPack WIX generator
4637       The following variables are specific to the installers built on Windows
4638       using WiX.
4639
4640       CPACK_WIX_UPGRADE_GUID
4641              Upgrade GUID (Product/@UpgradeCode)
4642
4643              Will be automatically generated unless explicitly provided.
4644
4645              It  should  be  explicitly  set to a constant generated globally
4646              unique identifier (GUID) to allow your installers to replace ex‐
4647              isting installations that use the same GUID.
4648
4649              You  may for example explicitly set this variable in your CMake‐
4650              Lists.txt to the value that has been generated per default.  You
4651              should not use GUIDs that you did not generate yourself or which
4652              may belong to other projects.
4653
4654              A GUID shall have the following fixed length syntax:
4655
4656                 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
4657
4658              (each X represents an uppercase hexadecimal digit)
4659
4660       CPACK_WIX_PRODUCT_GUID
4661              Product GUID (Product/@Id)
4662
4663              Will be automatically generated unless explicitly provided.
4664
4665              If explicitly provided this will set the Product Id of your  in‐
4666              staller.
4667
4668              The  installer will abort if it detects a pre-existing installa‐
4669              tion that uses the same GUID.
4670
4671              The GUID  shall  use  the  syntax  described  for  CPACK_WIX_UP‐
4672              GRADE_GUID.
4673
4674       CPACK_WIX_LICENSE_RTF
4675              RTF License File
4676
4677              If  CPACK_RESOURCE_FILE_LICENSE has an .rtf extension it is used
4678              as-is.
4679
4680              If CPACK_RESOURCE_FILE_LICENSE has an .txt extension it  is  im‐
4681              plicitly  converted  to  RTF by the WIX Generator.  The expected
4682              encoding of the .txt file is UTF-8.
4683
4684              With CPACK_WIX_LICENSE_RTF you can  override  the  license  file
4685              used by the WIX Generator in case CPACK_RESOURCE_FILE_LICENSE is
4686              in an unsupported format or the .txt -> .rtf conversion does not
4687              work as expected.
4688
4689       CPACK_WIX_PRODUCT_ICON
4690              The Icon shown next to the program name in Add/Remove programs.
4691
4692              If set, this icon is used in place of the default icon.
4693
4694       CPACK_WIX_UI_REF
4695              This  variable allows you to override the Id of the <UIRef> ele‐
4696              ment in the WiX template.
4697
4698              The default is WixUI_InstallDir in case no CPack components have
4699              been defined and WixUI_FeatureTree otherwise.
4700
4701       CPACK_WIX_UI_BANNER
4702              The  bitmap  will appear at the top of all installer pages other
4703              than the welcome and completion dialogs.
4704
4705              If set, this image will replace the default banner image.
4706
4707              This image must be 493 by 58 pixels.
4708
4709       CPACK_WIX_UI_DIALOG
4710              Background bitmap used on the welcome and completion dialogs.
4711
4712              If this variable is set, the installer will replace the  default
4713              dialog image.
4714
4715              This image must be 493 by 312 pixels.
4716
4717       CPACK_WIX_PROGRAM_MENU_FOLDER
4718              Start menu folder name for launcher.
4719
4720              If  this  variable  is  not  set,  it  will  be initialized with
4721              CPACK_PACKAGE_NAME
4722
4723              New in version 3.16: If this variable is set to ., then applica‐
4724              tion  shortcuts  will  be created directly in the start menu and
4725              the uninstaller shortcut will be omitted.
4726
4727
4728       CPACK_WIX_CULTURES
4729              Language(s) of the installer
4730
4731              Languages are compiled into the WixUI extension library.  To use
4732              them,  simply  provide  the name of the culture.  If you specify
4733              more than one culture identifier in a comma or semicolon  delim‐
4734              ited  list,  the  first one that is found will be used.  You can
4735              find     a     list     of     supported      languages      at:
4736              https://wixtoolset.org/docs/v3/wixui/wixui_localization/
4737
4738       CPACK_WIX_TEMPLATE
4739              Template file for WiX generation
4740
4741              If  this variable is set, the specified template will be used to
4742              generate the WiX wxs file.  This should be used if further  cus‐
4743              tomization of the output is required.
4744
4745              If  this  variable is not set, the default MSI template included
4746              with CMake will be used.
4747
4748       CPACK_WIX_PATCH_FILE
4749              Optional list of XML files with fragments to  be  inserted  into
4750              generated WiX sources.
4751
4752              New in version 3.5: Support listing multiple patch files.
4753
4754
4755              This  optional  variable can be used to specify an XML file that
4756              the WIX generator will use to inject fragments into  its  gener‐
4757              ated source files.
4758
4759              Patch files understood by the CPack WIX generator roughly follow
4760              this RELAX NG compact schema:
4761
4762                 start = CPackWiXPatch
4763
4764                 CPackWiXPatch = element CPackWiXPatch { CPackWiXFragment* }
4765
4766                 CPackWiXFragment = element CPackWiXFragment
4767                 {
4768                     attribute Id { string },
4769                     fragmentContent*
4770                 }
4771
4772                 fragmentContent = element * - CPackWiXFragment
4773                 {
4774                     (attribute * { text } | text | fragmentContent)*
4775                 }
4776
4777              Currently fragments can be injected into most  Component,  File,
4778              Directory and Feature elements.
4779
4780              New  in version 3.3: The following additional special Ids can be
4781              used:
4782
4783#PRODUCT for the <Product> element.
4784
4785#PRODUCTFEATURE for the root <Feature> element.
4786
4787
4788              New in version 3.7: Support patching  arbitrary  <Feature>  ele‐
4789              ments.
4790
4791
4792              New in version 3.9: Allow setting additional attributes.
4793
4794
4795              The following example illustrates how this works.
4796
4797              Given that the WIX generator creates the following XML element:
4798
4799                 <Component Id="CM_CP_applications.bin.my_libapp.exe" Guid="*"/>
4800
4801              The  following  XML patch file may be used to inject an Environ‐
4802              ment element into it:
4803
4804                 <CPackWiXPatch>
4805                   <CPackWiXFragment Id="CM_CP_applications.bin.my_libapp.exe">
4806                     <Environment Id="MyEnvironment" Action="set"
4807                       Name="MyVariableName" Value="MyVariableValue"/>
4808                   </CPackWiXFragment>
4809                 </CPackWiXPatch>
4810
4811       CPACK_WIX_EXTRA_SOURCES
4812              Extra WiX source files
4813
4814              This variable provides an optional  list  of  extra  WiX  source
4815              files  (.wxs) that should be compiled and linked.  The full path
4816              to source files is required.
4817
4818       CPACK_WIX_EXTRA_OBJECTS
4819              Extra WiX object files or libraries
4820
4821              This variable provides an optional  list  of  extra  WiX  object
4822              (.wixobj)  and/or WiX library (.wixlib) files.  The full path to
4823              objects and libraries is required.
4824
4825       CPACK_WIX_EXTENSIONS
4826              This variable provides a list of additional extensions  for  the
4827              WiX tools light and candle.
4828
4829       CPACK_WIX_<TOOL>_EXTENSIONS
4830              This  is  the  tool  specific  version  of CPACK_WIX_EXTENSIONS.
4831              <TOOL> can be either LIGHT or CANDLE.
4832
4833       CPACK_WIX_<TOOL>_EXTRA_FLAGS
4834              This list variable allows you to pass additional  flags  to  the
4835              WiX tool <TOOL>.
4836
4837              Use  it at your own risk.  Future versions of CPack may generate
4838              flags which may be in conflict with your own flags.
4839
4840              <TOOL> can be either LIGHT or CANDLE.
4841
4842       CPACK_WIX_CMAKE_PACKAGE_REGISTRY
4843              If this variable is set the generated installer will  create  an
4844              entry  in  the  windows  registry  key  HKEY_LOCAL_MACHINE\Soft‐
4845              ware\Kitware\CMake\Packages\<PackageName> The value for  <Packa‐
4846              geName> is provided by this variable.
4847
4848              Assuming  you  also install a CMake configuration file this will
4849              allow other  CMake  projects  to  find  your  package  with  the
4850              find_package() command.
4851
4852       CPACK_WIX_PROPERTY_<PROPERTY>
4853              New in version 3.1.
4854
4855
4856              This variable can be used to provide a value for the Windows In‐
4857              staller property <PROPERTY>
4858
4859              The following list contains some example properties that can  be
4860              used  to  customize  information  under  "Programs and Features"
4861              (also known as "Add or Remove Programs")
4862
4863              • ARPCOMMENTS - Comments
4864
4865              • ARPHELPLINK - Help and support information URL
4866
4867              • ARPURLINFOABOUT - General information URL
4868
4869              • ARPURLUPDATEINFO - Update information URL
4870
4871              • ARPHELPTELEPHONE - Help and support telephone number
4872
4873              • ARPSIZE - Size (in kilobytes) of the application
4874
4875       CPACK_WIX_ROOT_FEATURE_TITLE
4876              New in version 3.7.
4877
4878
4879              Sets the name of the root install feature in the WIX  installer.
4880              Same as CPACK_COMPONENT_<compName>_DISPLAY_NAME for components.
4881
4882       CPACK_WIX_ROOT_FEATURE_DESCRIPTION
4883              New in version 3.7.
4884
4885
4886              Sets  the description of the root install feature in the WIX in‐
4887              staller. Same as CPACK_COMPONENT_<compName>_DESCRIPTION for com‐
4888              ponents.
4889
4890       CPACK_WIX_SKIP_PROGRAM_FOLDER
4891              New in version 3.7.
4892
4893
4894              If this variable is set to true, the default install location of
4895              the generated package  will  be  CPACK_PACKAGE_INSTALL_DIRECTORY
4896              directly.   The  install location will not be located relatively
4897              below ProgramFiles or ProgramFiles64.
4898
4899                 NOTE:
4900                     Installers created with this feature do not take  differ‐
4901                     ences  between  the system on which the installer is cre‐
4902                     ated and the system on which the installer might be  used
4903                     into account.
4904
4905                     It  is  therefore  possible that the installer e.g. might
4906                     try to install onto a drive that is unavailable or  unin‐
4907                     tended or a path that does not follow the localization or
4908                     convention of the system on  which  the  installation  is
4909                     performed.
4910
4911       CPACK_WIX_ROOT_FOLDER_ID
4912              New in version 3.9.
4913
4914
4915              This  variable  allows specification of a custom root folder ID.
4916              The generator specific <64> token can be  used  for  folder  IDs
4917              that  come  in 32-bit and 64-bit variants.  In 32-bit builds the
4918              token will expand empty while in 64-bit builds it will expand to
4919              64.
4920
4921              When  unset generated installers will default installing to Pro‐
4922              gramFiles<64>Folder.
4923
4924       CPACK_WIX_ROOT
4925              This variable can optionally be set to the root directory  of  a
4926              custom WiX Toolset installation.
4927
4928              When  unspecified CPack will try to locate a WiX Toolset instal‐
4929              lation via the WIX environment variable instead.
4930
4931       CPACK_WIX_CUSTOM_XMLNS
4932              New in version 3.19.
4933
4934
4935              This variable provides a list of custom  namespace  declarations
4936              that  are  necessary  for using WiX extensions. Each declaration
4937              should be in the form name=url, where name is  the  plain  name‐
4938              space  without  the  usual  xmlns: prefix and url is an unquoted
4939              namespace url. A list of commonly  known  WiX  schemata  can  be
4940              found here: https://wixtoolset.org/docs/v3/xsd/
4941
4942       CPACK_WIX_SKIP_WIX_UI_EXTENSION
4943              New in version 3.23.
4944
4945
4946              If this variable is set then the inclusion of WixUIExtensions is
4947              skipped, i.e. the -ext "WixUIExtension" command line is not  in‐
4948              cluded during the execution of the WiX light tool.
4949
4950       CPACK_WIX_ARCHITECTURE
4951              New in version 3.24.
4952
4953
4954              This variable can be optionally set to specify the target archi‐
4955              tecture of the installer. May for  example  be  set  to  x64  or
4956              arm64.
4957
4958              When unspecified, CPack will default to x64 or x86.
4959
4961       2000-2023 Kitware, Inc. and Contributors
4962
4963
4964
4965
49663.27.7                           Oct 07, 2023              CPACK-GENERATORS(7)
Impressum