summaryrefslogtreecommitdiff
path: root/Help
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2022-04-29 17:43:03 +1000
committerCraig Scott <craig.scott@crascit.com>2022-04-30 00:28:05 +1000
commitd099136addaf5e9672e892ad2cb1c43809f7174b (patch)
tree21fba5692c4e988cb27ef19e2086386ce73d0864 /Help
parent74c4762a3884ac938106d412a5ea8ea7b248f9ca (diff)
downloadcmake-d099136addaf5e9672e892ad2cb1c43809f7174b.tar.gz
productbuild: Restore CPACK_PACKAGEMAKER_CHOICES variable
In 2a8df7e7db (productbuild: Don't write rootVolumeOnly attribute if writing domains, 2022-03-21), the variable holding the main contents of the distribution.dist XML file was renamed from CPACK_PACKAGEMAKER_CHOICES to CPACK_APPLE_PKG_INSTALLER_CONTENT. This reflected the fact that the PackageMaker generator is deprecated. The new variable also includes more details than the old one held. Some projects were relying on the old variable name, so we need to still set that to the same contents as it would have previously provided. Neither of these variables were previously documented, but the older variable was mentioned in enough semi-official places that it essentially became semi-supported. Document both variables and highlight that the older one is deprecated. Fixes: #23467
Diffstat (limited to 'Help')
-rw-r--r--Help/cpack_gen/productbuild.rst44
-rw-r--r--Help/release/3.23.rst27
2 files changed, 71 insertions, 0 deletions
diff --git a/Help/cpack_gen/productbuild.rst b/Help/cpack_gen/productbuild.rst
index 26e0782e22..48a9b4469a 100644
--- a/Help/cpack_gen/productbuild.rst
+++ b/Help/cpack_gen/productbuild.rst
@@ -203,3 +203,47 @@ installer.
Does the same as :variable:`CPACK_PRODUCTBUILD_BACKGROUND_UTI` option,
but for the dark theme.
+
+Distribution XML Template
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+CPack uses a template file to generate the ``distribution.dist`` file used
+internally by this package generator. Ordinarily, CMake provides the template
+file, but projects may supply their own by placing a file called
+``CPack.distribution.dist.in`` in one of the directories listed in the
+:variable:`CMAKE_MODULE_PATH` variable. CPack will then pick up the project's
+template file instead of using its own.
+
+The ``distribution.dist`` file is generated by performing substitutions
+similar to the :command:`configure_file` command. Any variable set when
+CPack runs will be available for substitution using the usual ``@...@``
+form. The following variables are also set internally and made available for
+substitution:
+
+``CPACK_RESOURCE_FILE_LICENSE_NOPATH``
+ Same as :variable:`CPACK_RESOURCE_FILE_LICENSE` except without the path.
+ The named file will be available in the same directory as the generated
+ ``distribution.dist`` file.
+
+``CPACK_RESOURCE_FILE_README_NOPATH``
+ Same as :variable:`CPACK_RESOURCE_FILE_README` except without the path.
+ The named file will be available in the same directory as the generated
+ ``distribution.dist`` file.
+
+``CPACK_RESOURCE_FILE_WELCOME_NOPATH``
+ Same as :variable:`CPACK_RESOURCE_FILE_WELCOME` except without the path.
+ The named file will be available in the same directory as the generated
+ ``distribution.dist`` file.
+
+``CPACK_APPLE_PKG_INSTALLER_CONTENT``
+ .. versionadded:: 3.23
+
+ This contains all the XML elements that specify installer-wide options
+ (including domain details), default backgrounds and the choices outline.
+
+``CPACK_PACKAGEMAKER_CHOICES``
+ .. deprecated:: 3.23
+
+ This contains only the XML elements that specify the default backgrounds
+ and the choices outline. It does not include the installer-wide options or
+ any domain details. Use ``CPACK_APPLE_PKG_INSTALLER_CONTENT`` instead.
diff --git a/Help/release/3.23.rst b/Help/release/3.23.rst
index 2febbec3cb..47c4243517 100644
--- a/Help/release/3.23.rst
+++ b/Help/release/3.23.rst
@@ -185,6 +185,13 @@ CPack
:variable:`CPACK_PRODUCTBUILD_IDENTIFIER`, used to customize the unique
product identifier associated with the product.
+* The ``CPack.distribution.dist.in`` template used by the
+ :cpack_gen:`CPack productbuild Generator` and
+ :cpack_gen:`CPack PackageMaker Generator` was updated to use a new
+ ``CPACK_APPLE_PKG_INSTALLER_CONTENT`` variable for its main content.
+ This replaced the previously undocumented and now deprecated
+ ``CPACK_PACKAGEMAKER_CHOICES`` variable.
+
* The :cpack_gen:`CPack IFW Generator` gained the new
:variable:`CPACK_IFW_ARCHIVE_FORMAT` and
:variable:`CPACK_IFW_ARCHIVE_COMPRESSION` variables for setting the
@@ -230,6 +237,15 @@ Deprecated and Removed Features
* The :manual:`cpack(1)` undocumented ``OSXX11`` generator has been removed.
+* The previously undocumented ``CPACK_PACKAGEMAKER_CHOICES`` variable used in
+ the ``CPack.distribution.dist.in`` template has been replaced by a new
+ ``CPACK_APPLE_PKG_INSTALLER_CONTENT`` variable. This only affects projects
+ that were providing their own custom ``CPack.distribution.dist.in`` template
+ file, but still relied on ``CPACK_PACKAGEMAKER_CHOICES`` being set. Those
+ custom template files should be updated to use
+ ``CPACK_APPLE_PKG_INSTALLER_CONTENT`` instead, or to fully define all the
+ template file's contents without relying on substitution of either variable.
+
Other Changes
=============
@@ -282,3 +298,14 @@ Changes made since CMake 3.23.0 include the following.
* The :prop_tgt:`HEADER_SETS` and :prop_tgt:`INTERFACE_HEADER_SETS` target
properties added in CMake 3.23.0 are now read-only records of the header
sets created by the :command:`target_sources` command.
+
+3.23.2
+------
+
+* The ``CPACK_PACKAGEMAKER_CHOICES`` variable used in the
+ ``CPack.distribution.dist.in`` template file was replaced by a new
+ ``CPACK_APPLE_PKG_INSTALLER_CONTENT`` variable in CMake 3.23.0.
+ This broke projects that provided their own template file but still
+ expected the ``CPACK_PACKAGEMAKER_CHOICES`` variable to be defined.
+ The old ``CPACK_PACKAGEMAKER_CHOICES`` variable is now also set to the
+ same content as it was before, but it is formally deprecated.