From f759cc00a3fa0996dcecf703564bf70a3fcb3b7c Mon Sep 17 00:00:00 2001 From: RedworkDE <10944644+RedworkDE@users.noreply.github.com> Date: Sun, 12 Feb 2023 18:13:57 +0100 Subject: [PATCH] C#: Enable exporting for Android --- modules/mono/config.py | 2 +- .../GodotTools/GodotTools/Export/ExportPlugin.cs | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/modules/mono/config.py b/modules/mono/config.py index a36083b64b20..2b2a8d6235ce 100644 --- a/modules/mono/config.py +++ b/modules/mono/config.py @@ -1,6 +1,6 @@ # Prior to .NET Core, we supported these: ["windows", "macos", "linuxbsd", "android", "haiku", "web", "ios"] # Eventually support for each them should be added back (except Haiku if not supported by .NET Core) -supported_platforms = ["windows", "macos", "linuxbsd"] +supported_platforms = ["windows", "macos", "linuxbsd", "android"] def can_build(env, platform): diff --git a/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs b/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs index bf0cc4204eea..4d61372ab095 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs @@ -127,7 +127,7 @@ private void _ExportBeginImpl(string[] features, bool isDebug, string path, long if (!DeterminePlatformFromFeatures(features, out string platform)) throw new NotSupportedException("Target platform not supported."); - if (!new[] { OS.Platforms.Windows, OS.Platforms.LinuxBSD, OS.Platforms.MacOS } + if (!new[] { OS.Platforms.Windows, OS.Platforms.LinuxBSD, OS.Platforms.MacOS, OS.Platforms.Android } .Contains(platform)) { throw new NotImplementedException("Target platform not yet implemented."); @@ -142,15 +142,19 @@ private void _ExportBeginImpl(string[] features, bool isDebug, string path, long { archs.Add("x86_64"); } - else if (features.Contains("x86_32")) + if (features.Contains("x86_32")) { archs.Add("x86_32"); } - else if (features.Contains("arm64")) + if (features.Contains("arm64")) { archs.Add("arm64"); } - else if (features.Contains("universal")) + if (features.Contains("arm32")) + { + archs.Add("arm32"); + } + if (features.Contains("universal")) { if (platform == OS.Platforms.MacOS) { @@ -159,7 +163,7 @@ private void _ExportBeginImpl(string[] features, bool isDebug, string path, long } } - bool embedBuildResults = (bool)GetOption("dotnet/embed_build_outputs"); + bool embedBuildResults = (bool)GetOption("dotnet/embed_build_outputs") || features.Contains("android"); foreach (var arch in archs) { @@ -256,7 +260,7 @@ private string DetermineRuntimeIdentifierArch(string arch) "x86_64" => "x64", "armeabi-v7a" => "arm", "arm64-v8a" => "arm64", - "armv7" => "arm", + "arm32" => "arm", "arm64" => "arm64", _ => throw new ArgumentOutOfRangeException(nameof(arch), arch, "Unexpected architecture") };