1CPACK-GENERATORS(7) CMake CPACK-GENERATORS(7)
2
3
4
6 cpack-generators - CPack Generator Reference
7
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
94 • CPack Cygwin Generator
95
96 • CPack 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
236 • https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
237
238 • https://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
265 • CPACK_PACKAGE_NAME for non-component based installa‐
266 tions
267
268 • CPACK_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
395 • CPACK_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
448 • CPACK_DEBIAN_<COMPONENT>_DESCRIPTION (component based
449 installers only) if set, or
450 CPACK_DEBIAN_PACKAGE_DESCRIPTION if set, or
451
452 • CPACK_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
593 • CPACK_DEBIAN_PACKAGE_SHLIBDEPS if set or
594
595 • OFF
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
663 • CPACK_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
687 • CPACK_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
714 • CPACK_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
739 • CPACK_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
769 • CPACK_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
793 • CPACK_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
817 • CPACK_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
840 • CPACK_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
957 • CPACK_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
1533 • CPACK_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
1545 • CPACK_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
1558 • CPACK_DEBIAN_PACKAGE_DESCRIPTION (this may be set al‐
1559 ready for Debian packaging, so it is used as a fall‐
1560 back).
1561
1562 • CPACK_PACKAGE_DESCRIPTION_SUMMARY (this is always set
1563 by CPack itself, if nothing else sets it explicitly).
1564
1565 • PROJECT_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
1579 • CPACK_PACKAGE_HOMEPAGE_URL, or if that is not set,
1580
1581 • CPACK_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
1597 • CPACK_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
2856 • CPACK_COMPONENT_<compName>_DESCRIPTION,
2857
2858 • CPACK_COMPONENT_GROUP_<groupName>_DESCRIPTION,
2859
2860 • CPACK_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
2888 • CPACK_COMPONENT_<compName>_DISPLAY_NAME,
2889
2890 • CPACK_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
3382 • https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
3383
3384 • https://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
3612 • CPACK_COMPONENT_<compName>_DESCRIPTION (component based
3613 installers only) if set,
3614
3615 • CPACK_PACKAGE_DESCRIPTION_FILE if set, or
3616
3617 • no 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
4261 • OWNER_READ
4262
4263 • OWNER_WRITE
4264
4265 • OWNER_EXECUTE
4266
4267 • GROUP_READ
4268
4269 • GROUP_WRITE
4270
4271 • GROUP_EXECUTE
4272
4273 • WORLD_READ
4274
4275 • WORLD_WRITE
4276
4277 • WORLD_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)