Add linux-bionic RID Export Option
Adds an export option to enable the linux-bionic RID so Android can export with NativeAOT enabled.
This commit is contained in:
parent
68f053bf82
commit
4e49db99f5
3 changed files with 45 additions and 8 deletions
|
@ -37,8 +37,28 @@ namespace GodotTools.Export
|
|||
|
||||
public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetExportOptions(EditorExportPlatform platform)
|
||||
{
|
||||
return new Godot.Collections.Array<Godot.Collections.Dictionary>()
|
||||
var exportOptionList = new Godot.Collections.Array<Godot.Collections.Dictionary>();
|
||||
|
||||
if (platform.GetOsName().Equals(OS.Platforms.Android, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
exportOptionList.Add
|
||||
(
|
||||
new Godot.Collections.Dictionary()
|
||||
{
|
||||
{
|
||||
"option", new Godot.Collections.Dictionary()
|
||||
{
|
||||
{ "name", "dotnet/android_use_linux_bionic" },
|
||||
{ "type", (int)Variant.Type.Bool }
|
||||
}
|
||||
},
|
||||
{ "default_value", false }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
exportOptionList.Add
|
||||
(
|
||||
new Godot.Collections.Dictionary()
|
||||
{
|
||||
{
|
||||
|
@ -49,7 +69,10 @@ namespace GodotTools.Export
|
|||
}
|
||||
},
|
||||
{ "default_value", false }
|
||||
},
|
||||
}
|
||||
);
|
||||
exportOptionList.Add
|
||||
(
|
||||
new Godot.Collections.Dictionary()
|
||||
{
|
||||
{
|
||||
|
@ -60,7 +83,10 @@ namespace GodotTools.Export
|
|||
}
|
||||
},
|
||||
{ "default_value", true }
|
||||
},
|
||||
}
|
||||
);
|
||||
exportOptionList.Add
|
||||
(
|
||||
new Godot.Collections.Dictionary()
|
||||
{
|
||||
{
|
||||
|
@ -72,7 +98,8 @@ namespace GodotTools.Export
|
|||
},
|
||||
{ "default_value", false }
|
||||
}
|
||||
};
|
||||
);
|
||||
return exportOptionList;
|
||||
}
|
||||
|
||||
private void AddExceptionMessage(EditorExportPlatform platform, Exception exception)
|
||||
|
@ -158,11 +185,12 @@ namespace GodotTools.Export
|
|||
throw new NotImplementedException("Target platform not yet implemented.");
|
||||
}
|
||||
|
||||
bool useAndroidLinuxBionic = (bool)GetOption("dotnet/android_use_linux_bionic");
|
||||
PublishConfig publishConfig = new()
|
||||
{
|
||||
BuildConfig = isDebug ? "ExportDebug" : "ExportRelease",
|
||||
IncludeDebugSymbols = (bool)GetOption("dotnet/include_debug_symbols"),
|
||||
RidOS = DetermineRuntimeIdentifierOS(platform),
|
||||
RidOS = DetermineRuntimeIdentifierOS(platform, useAndroidLinuxBionic),
|
||||
Archs = new List<string>(),
|
||||
UseTempDir = platform != OS.Platforms.iOS, // xcode project links directly to files in the publish dir, so use one that sticks around.
|
||||
BundleOutputs = true,
|
||||
|
@ -440,8 +468,14 @@ namespace GodotTools.Export
|
|||
return path;
|
||||
}
|
||||
|
||||
private string DetermineRuntimeIdentifierOS(string platform)
|
||||
=> OS.DotNetOSPlatformMap[platform];
|
||||
private string DetermineRuntimeIdentifierOS(string platform, bool useAndroidLinuxBionic)
|
||||
{
|
||||
if (platform == OS.Platforms.Android && useAndroidLinuxBionic)
|
||||
{
|
||||
return OS.DotNetOS.LinuxBionic;
|
||||
}
|
||||
return OS.DotNetOSPlatformMap[platform];
|
||||
}
|
||||
|
||||
private string DetermineRuntimeIdentifierArch(string arch)
|
||||
{
|
||||
|
|
|
@ -55,6 +55,7 @@ namespace GodotTools.Utils
|
|||
public const string Linux = "linux";
|
||||
public const string Win10 = "win10";
|
||||
public const string Android = "android";
|
||||
public const string LinuxBionic = "linux-bionic";
|
||||
public const string iOS = "ios";
|
||||
public const string iOSSimulator = "iossimulator";
|
||||
public const string Browser = "browser";
|
||||
|
@ -99,7 +100,6 @@ namespace GodotTools.Utils
|
|||
[Platforms.iOS] = DotNetOS.iOS,
|
||||
[Platforms.Web] = DotNetOS.Browser
|
||||
};
|
||||
|
||||
private static bool IsOS(string name)
|
||||
{
|
||||
Internal.godot_icall_Utils_OS_GetPlatformName(out godot_string dest);
|
||||
|
|
|
@ -1963,6 +1963,9 @@ bool EditorExportPlatformAndroid::get_export_option_visibility(const EditorExpor
|
|||
return false;
|
||||
}
|
||||
|
||||
if (p_option == "dotnet/android_use_linux_bionic") {
|
||||
return advanced_options_enabled;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue