diff options
author | Brad King <brad.king@kitware.com> | 2022-03-22 12:50:56 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-03-22 12:51:02 (GMT) |
commit | a20424e737c6fc68ca62e4822e5fbf1402da04b3 (patch) | |
tree | 0a03e99111b847ed5eacb0864462c5aadbd86132 | |
parent | b0b536a255517ef9508f1c6b4940079f2aed6496 (diff) | |
parent | 2a8df7e7db2ecef9652ab27371c5dbfbc56b2617 (diff) | |
download | CMake-a20424e737c6fc68ca62e4822e5fbf1402da04b3.zip CMake-a20424e737c6fc68ca62e4822e5fbf1402da04b3.tar.gz CMake-a20424e737c6fc68ca62e4822e5fbf1402da04b3.tar.bz2 |
Merge topic 'productbuild-rootVolumeOnly'
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.in | 11 | ||||
-rw-r--r-- | Source/CPack/cmCPackPKGGenerator.cxx | 25 |
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 f20e66c..291b24d 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 d8095cc..2a14ccf 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"); |