diff options
author | Russell Greene <russell@shotover.com> | 2022-11-10 20:50:03 (GMT) |
---|---|---|
committer | Russell Greene <russell@shotover.com> | 2022-11-18 19:58:03 (GMT) |
commit | b99c386122b3e27b3c931c49f26d4afd93580755 (patch) | |
tree | 25b67f110ff43a7f0f939e1f9ca6cdd9b1128a39 /Source | |
parent | 43918087123d5ec5b6df3b7cb56c123a7adc5b90 (diff) | |
download | CMake-b99c386122b3e27b3c931c49f26d4afd93580755.zip CMake-b99c386122b3e27b3c931c49f26d4afd93580755.tar.gz CMake-b99c386122b3e27b3c931c49f26d4afd93580755.tar.bz2 |
Xcode: Allow bundling extensionkit extensions
Fixes: #24150
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 17 | ||||
-rw-r--r-- | Source/cmGlobalXCodeGenerator.h | 4 |
2 files changed, 18 insertions, 3 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 0e94de5..aeb5074 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -3929,7 +3929,7 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target) void cmGlobalXCodeGenerator::AddEmbeddedObjects( cmXCodeObject* target, const std::string& copyFilesBuildPhaseName, const std::string& embedPropertyName, const std::string& dstSubfolderSpec, - int actionsOnByDefault) + int actionsOnByDefault, const std::string& defaultDstPath) { cmGeneratorTarget* gt = target->GetTarget(); if (!gt) { @@ -3965,7 +3965,8 @@ void cmGlobalXCodeGenerator::AddEmbeddedObjects( copyFilesBuildPhase->AddAttribute("dstPath", this->CreateString(*fwEmbedPath)); } else { - copyFilesBuildPhase->AddAttribute("dstPath", this->CreateString("")); + copyFilesBuildPhase->AddAttribute("dstPath", + this->CreateString(defaultDstPath)); } copyFilesBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", this->CreateString("0")); @@ -4091,6 +4092,17 @@ void cmGlobalXCodeGenerator::AddEmbeddedAppExtensions(cmXCodeObject* target) RemoveHeadersOnCopyByDefault); } +void cmGlobalXCodeGenerator::AddEmbeddedExtensionKitExtensions( + cmXCodeObject* target) +{ + static const auto dstSubfolderSpec = "16"; + + this->AddEmbeddedObjects(target, "Embed App Extensions", + "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS", + dstSubfolderSpec, RemoveHeadersOnCopyByDefault, + "$(EXTENSIONS_FOLDER_PATH)"); +} + bool cmGlobalXCodeGenerator::CreateGroups( std::vector<cmLocalGenerator*>& generators) { @@ -4482,6 +4494,7 @@ bool cmGlobalXCodeGenerator::CreateXCodeObjects( this->AddEmbeddedFrameworks(t); this->AddEmbeddedPlugIns(t); this->AddEmbeddedAppExtensions(t); + this->AddEmbeddedExtensionKitExtensions(t); // Inherit project-wide values for any target-specific search paths. this->InheritBuildSettingAttribute(t, "HEADER_SEARCH_PATHS"); this->InheritBuildSettingAttribute(t, "SYSTEM_HEADER_SEARCH_PATHS"); diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index 856852b..1fdd189 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -218,10 +218,12 @@ private: const std::string& copyFilesBuildPhaseName, const std::string& embedPropertyName, const std::string& dstSubfolderSpec, - int actionsOnByDefault); + int actionsOnByDefault, + const std::string& defaultDstPath = ""); void AddEmbeddedFrameworks(cmXCodeObject* target); void AddEmbeddedPlugIns(cmXCodeObject* target); void AddEmbeddedAppExtensions(cmXCodeObject* target); + void AddEmbeddedExtensionKitExtensions(cmXCodeObject* target); void AddPositionIndependentLinkAttribute(cmGeneratorTarget* target, cmXCodeObject* buildSettings, const std::string& configName); |