diff options
author | Tim Hutt <tim.hutt@ultrahaptics.com> | 2017-02-14 13:18:42 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-02-17 16:40:45 (GMT) |
commit | d32f9debc80e1fc90efb07392f829d998cbbc2c5 (patch) | |
tree | 8b4eb5a95ca78cfc7a7fa0aea2bae9f28c6ac4f5 /Source/CPack | |
parent | 11e9605179e340833d95115fb0178d2ee84b3e24 (diff) | |
download | CMake-d32f9debc80e1fc90efb07392f829d998cbbc2c5.zip CMake-d32f9debc80e1fc90efb07392f829d998cbbc2c5.tar.gz CMake-d32f9debc80e1fc90efb07392f829d998cbbc2c5.tar.bz2 |
CPack: Add option to specify --component-plist for productbuild
When using the productbuild generator this lets you specify the value of
the `--component-plist` parameter when it runs pkgbuild for a component.
Fixes: #16638
Diffstat (limited to 'Source/CPack')
-rw-r--r-- | Source/CPack/cmCPackComponentGroup.h | 4 | ||||
-rw-r--r-- | Source/CPack/cmCPackGenerator.cxx | 5 | ||||
-rw-r--r-- | Source/CPack/cmCPackProductBuildGenerator.cxx | 4 |
3 files changed, 13 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackComponentGroup.h b/Source/CPack/cmCPackComponentGroup.h index f955daf..510adc2 100644 --- a/Source/CPack/cmCPackComponentGroup.h +++ b/Source/CPack/cmCPackComponentGroup.h @@ -78,6 +78,10 @@ public: /// contains the files that are part of this component. std::string ArchiveFile; + /// The file to pass to --component-plist when using the + /// productbuild generator. + std::string Plist; + /// The components that this component depends on. std::vector<cmCPackComponent*> Dependencies; diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index 21eda79..e1a4a2a 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -1396,6 +1396,11 @@ cmCPackComponent* cmCPackGenerator::GetComponent( component->ArchiveFile = archiveFile; } + const char* plist = this->GetOption(macroPrefix + "_PLIST"); + if (plist && *plist) { + component->Plist = plist; + } + const char* groupName = this->GetOption(macroPrefix + "_GROUP"); if (groupName && *groupName) { component->Group = GetComponentGroup(projectName, groupName); diff --git a/Source/CPack/cmCPackProductBuildGenerator.cxx b/Source/CPack/cmCPackProductBuildGenerator.cxx index a5a18dc..076cc25 100644 --- a/Source/CPack/cmCPackProductBuildGenerator.cxx +++ b/Source/CPack/cmCPackProductBuildGenerator.cxx @@ -223,6 +223,10 @@ bool cmCPackProductBuildGenerator::GenerateComponentPackage( : " --keychain \"" + keychainPath + "\"") << " \"" << packageFile << "\""; + if (component && !component->Plist.empty()) { + pkgCmd << " --component-plist \"" << component->Plist << "\""; + } + // Run ProductBuild return RunProductBuild(pkgCmd.str()); } |