summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-03-22 12:50:56 +0000
committerKitware Robot <kwrobot@kitware.com>2022-03-22 08:51:01 -0400
commit73939fb3cb5c3134a5dec48e5928a8334f9f42ef (patch)
tree11cc944c54cafc5465b9a2e1b530f64efe006285
parent14849594de4da003c6e40ffdf9fd58232a66aeb9 (diff)
parent2a8df7e7db2ecef9652ab27371c5dbfbc56b2617 (diff)
downloadcmake-73939fb3cb5c3134a5dec48e5928a8334f9f42ef.tar.gz
Merge topic 'productbuild-rootVolumeOnly' into release-3.23
2a8df7e7db productbuild: Don't write rootVolumeOnly attribute if writing domains 95eb8cbcfc CPack: Avoid space / tab mix in productbuild distribution.xml template 28fdc3a536 productbuild: Simplify internal CPACK_PRODUCTBUILD_DOMAINS usage Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7092
-rw-r--r--Modules/Internal/CPack/CPack.distribution.dist.in11
-rw-r--r--Source/CPack/cmCPackPKGGenerator.cxx25
2 files changed, 22 insertions, 14 deletions
diff --git a/Modules/Internal/CPack/CPack.distribution.dist.in b/Modules/Internal/CPack/CPack.distribution.dist.in
index f20e66c170..291b24d48f 100644
--- a/Modules/Internal/CPack/CPack.distribution.dist.in
+++ b/Modules/Internal/CPack/CPack.distribution.dist.in
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<installer-gui-script minSpecVersion="1.0">
- <title>@CPACK_PACKAGE_NAME@</title>
- <welcome file="@CPACK_RESOURCE_FILE_WELCOME_NOPATH@"/>
- <readme file="@CPACK_RESOURCE_FILE_README_NOPATH@"/>
- <license file="@CPACK_RESOURCE_FILE_LICENSE_NOPATH@"/>
- <options allow-external-scripts="no" customize="allow" rootVolumeOnly="false"></options>
- @CPACK_PACKAGEMAKER_CHOICES@
+ <title>@CPACK_PACKAGE_NAME@</title>
+ <welcome file="@CPACK_RESOURCE_FILE_WELCOME_NOPATH@"/>
+ <readme file="@CPACK_RESOURCE_FILE_README_NOPATH@"/>
+ <license file="@CPACK_RESOURCE_FILE_LICENSE_NOPATH@"/>
+@CPACK_APPLE_PKG_INSTALLER_CONTENT@
</installer-gui-script>
diff --git a/Source/CPack/cmCPackPKGGenerator.cxx b/Source/CPack/cmCPackPKGGenerator.cxx
index d8095cc16d..2a14ccffa5 100644
--- a/Source/CPack/cmCPackPKGGenerator.cxx
+++ b/Source/CPack/cmCPackPKGGenerator.cxx
@@ -120,10 +120,20 @@ void cmCPackPKGGenerator::WriteDistributionFile(const char* metapackageFile,
std::string distributionFile =
cmStrCat(metapackageFile, "/Contents/distribution.dist");
+ std::ostringstream xContents;
+ cmXMLWriter xout(xContents, 1);
+
+ // Installer-wide options
+ xout.StartElement("options");
+ xout.Attribute("allow-external-scripts", "no");
+ xout.Attribute("customize", "allow");
+ if (cmIsOff(this->GetOption("CPACK_PRODUCTBUILD_DOMAINS"))) {
+ xout.Attribute("rootVolumeOnly", "false");
+ }
+ xout.EndElement();
+
// Create the choice outline, which provides a tree-based view of
// the components in their groups.
- std::ostringstream choiceOut;
- cmXMLWriter xout(choiceOut, 1);
xout.StartElement("choices-outline");
// Emit the outline for the groups
@@ -169,7 +179,7 @@ void cmCPackPKGGenerator::WriteDistributionFile(const char* metapackageFile,
// Dark Aqua
this->CreateBackground("darkAqua", metapackageFile, genName, xout);
- this->SetOption("CPACK_PACKAGEMAKER_CHOICES", choiceOut.str());
+ this->SetOption("CPACK_APPLE_PKG_INSTALLER_CONTENT", xContents.str());
// Create the distribution.dist file in the metapackage to turn it
// into a distribution package.
@@ -293,8 +303,7 @@ void cmCPackPKGGenerator::CreateChoice(const cmCPackComponent& component,
void cmCPackPKGGenerator::CreateDomains(cmXMLWriter& xout)
{
- std::string opt = "CPACK_PRODUCTBUILD_DOMAINS";
- if (cmIsOff(this->GetOption(opt))) {
+ if (cmIsOff(this->GetOption("CPACK_PRODUCTBUILD_DOMAINS"))) {
return;
}
@@ -302,19 +311,19 @@ void cmCPackPKGGenerator::CreateDomains(cmXMLWriter& xout)
// Product can be installed at the root of any volume by default
// unless specified
- cmValue param = this->GetOption(cmStrCat(opt, "_ANYWHERE"));
+ cmValue param = this->GetOption("CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE");
xout.Attribute("enable_anywhere",
(param && cmIsOff(param)) ? "false" : "true");
// Product cannot be installed into the current user's home directory
// by default unless specified
- param = this->GetOption(cmStrCat(opt, "_USER"));
+ param = this->GetOption("CPACK_PRODUCTBUILD_DOMAINS_USER");
xout.Attribute("enable_currentUserHome",
(param && cmIsOn(param)) ? "true" : "false");
// Product can be installed into the root directory by default
// unless specified
- param = this->GetOption(cmStrCat(opt, "_ROOT"));
+ param = this->GetOption("CPACK_PRODUCTBUILD_DOMAINS_ROOT");
xout.Attribute("enable_localSystem",
(param && cmIsOff(param)) ? "false" : "true");