未验证 提交 71fbbcef 编写于 作者: S Steve Pfister 提交者: GitHub

[iOS] Add Macatalyst support for library mode (#90237)

This change allows you to target maccatalyst for building full, self-contained libraries.
上级 f8a1a6c1
......@@ -301,6 +301,7 @@
<ItemGroup Condition="'$(TargetOS)' == 'maccatalyst'">
<ProjectExclusions Include="$(RepoRoot)/src/tests/FunctionalTests/iOS/Simulator/XmlFormatWriterGeneratorAOT/iOS.Simulator.XmlFormatWriterGeneratorAot.Test.csproj" />
<ProjectExclusions Include="$(RepoRoot)/src/tests/FunctionalTests/iOS/Simulator/LibraryMode/iOS.Simulator.LibraryMode.Test.csproj" />
</ItemGroup>
<!-- Run only explicitly selected tests for Mac Catalyst in App Sandbox -->
......
......@@ -27,10 +27,6 @@ if(NOT %UseNativeAOTRuntime%)
include_directories("%MonoInclude%")
endif()
#set_target_properties(%ProjectName% %AotTargetsList% PROPERTIES
# XCODE_ATTRIBUTE_SUPPORTS_MACCATALYST "YES"
#)
set_target_properties(%ProjectName% PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
......@@ -39,6 +35,7 @@ set_target_properties(%ProjectName% PROPERTIES
XCODE_EMIT_EFFECTIVE_PLATFORM_NAME "YES"
XCODE_EMBED_FRAMEWORKS "%DYLIB_PATH%"
XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/Frameworks"
XCODE_ATTRIBUTE_SUPPORTS_MACCATALYST "YES"
RESOURCE "${APP_RESOURCES}"
)
......
......@@ -13,7 +13,7 @@ namespace Microsoft.Apple.Build
{
public sealed class AppleProject
{
private const string DefaultMinOSVersion = "11.0";
private string defaultMinOSVersion;
private TaskLoggingHelper logger;
......@@ -26,6 +26,8 @@ public sealed class AppleProject
public AppleProject(string projectName, string runtimeIdentifier, TaskLoggingHelper logger)
{
GetTargets(runtimeIdentifier, out targetOS, out targetArchitecture);
defaultMinOSVersion = (targetOS == "maccatalyst") ? "13.1" : "11.0";
targetAbi = DetermineAbi(targetArchitecture);
AppleSdk sdk = new AppleSdk(targetOS, logger);
......@@ -44,7 +46,12 @@ public string SdkRoot
}
}
public void Build(string workingDir, ClangBuildOptions buildOptions, bool stripDebugSymbols = false, string minOSVersion = DefaultMinOSVersion)
public void Build(string workingDir, ClangBuildOptions buildOptions, bool stripDebugSymbols = false)
{
Build(workingDir, buildOptions, defaultMinOSVersion, stripDebugSymbols);
}
public void Build(string workingDir, ClangBuildOptions buildOptions, string minOSVersion, bool stripDebugSymbols = false)
{
string clangArgs = BuildClangArgs(buildOptions, minOSVersion);
Utils.RunProcess(logger, "xcrun", workingDir: workingDir, args: clangArgs);
......
......@@ -135,6 +135,7 @@ targetOS switch
"iphonesimulator" => "iPhoneSimulator",
"tvos" => "AppleTVOS",
"tvos-simulator" => "AppleTVSimulator",
"maccatalyst" => "MacOSX",
_ => throw new ArgumentException($"{targetOS} does not have a valid platform name")
};
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册