mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Add C# iOS support
This support is experimental and requires .NET 8 Known issues: - Requires macOS due to use of lipo and xcodebuild - arm64 simulator templates are not currently included in the official packaging
This commit is contained in:
parent
9215b03429
commit
ee9a735c26
16 changed files with 471 additions and 298 deletions
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
|
@ -67,7 +68,7 @@ namespace GodotTools.Build
|
|||
{
|
||||
BuildStarted?.Invoke(buildInfo);
|
||||
|
||||
// Required in order to update the build tasks list
|
||||
// Required in order to update the build tasks list.
|
||||
Internal.GodotMainIteration();
|
||||
|
||||
try
|
||||
|
|
@ -162,7 +163,7 @@ namespace GodotTools.Build
|
|||
{
|
||||
BuildStarted?.Invoke(buildInfo);
|
||||
|
||||
// Required in order to update the build tasks list
|
||||
// Required in order to update the build tasks list.
|
||||
Internal.GodotMainIteration();
|
||||
|
||||
try
|
||||
|
|
@ -317,6 +318,45 @@ namespace GodotTools.Build
|
|||
) => PublishProjectBlocking(CreatePublishBuildInfo(configuration,
|
||||
platform, runtimeIdentifier, publishOutputDir, includeDebugSymbols));
|
||||
|
||||
public static bool GenerateXCFrameworkBlocking(
|
||||
List<string> outputPaths,
|
||||
string xcFrameworkPath)
|
||||
{
|
||||
using var pr = new EditorProgress("generate_xcframework", "Generating XCFramework...", 1);
|
||||
|
||||
pr.Step("Running xcodebuild -create-xcframework", 0);
|
||||
|
||||
if (!GenerateXCFramework(outputPaths, xcFrameworkPath))
|
||||
{
|
||||
ShowBuildErrorDialog("Failed to generate XCFramework");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool GenerateXCFramework(List<string> outputPaths, string xcFrameworkPath)
|
||||
{
|
||||
// Required in order to update the build tasks list.
|
||||
Internal.GodotMainIteration();
|
||||
|
||||
try
|
||||
{
|
||||
int exitCode = BuildSystem.GenerateXCFramework(outputPaths, xcFrameworkPath, StdOutputReceived, StdErrorReceived);
|
||||
|
||||
if (exitCode != 0)
|
||||
PrintVerbose(
|
||||
$"xcodebuild create-xcframework exited with code: {exitCode}.");
|
||||
|
||||
return exitCode == 0;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.Error.WriteLine(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool EditorBuildCallback()
|
||||
{
|
||||
if (!File.Exists(GodotSharpDirs.ProjectCsProjPath))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue