summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorRussell Greene <russell@shotover.com>2022-11-10 20:50:03 (GMT)
committerRussell Greene <russell@shotover.com>2022-11-18 19:58:03 (GMT)
commitb99c386122b3e27b3c931c49f26d4afd93580755 (patch)
tree25b67f110ff43a7f0f939e1f9ca6cdd9b1128a39 /Source
parent43918087123d5ec5b6df3b7cb56c123a7adc5b90 (diff)
downloadCMake-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.cxx17
-rw-r--r--Source/cmGlobalXCodeGenerator.h4
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);