|
|
@ -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"); |
|
|
|
|
|
|
|