Add validated Linux Godot export

This commit is contained in:
gamer147
2026-07-31 10:14:33 -04:00
parent 35fd461720
commit 765927d38f
30 changed files with 214 additions and 14 deletions

View File

@@ -74,12 +74,13 @@ public partial class DebugSceneLauncher : PopupPanel
_launch.Pressed += RequestLaunch;
}
public void Open(IReadOnlyList<DebugSceneEntry> entries, string currentContext)
public void Open(IReadOnlyList<DebugSceneEntry> entries, string currentContext, bool present = true)
{
_all = entries;
_currentContext = currentContext;
_status.Text = "";
Refresh();
if (!present) return;
PopupCentered(new Vector2I(700, 540));
_search.GrabFocus();
}

View File

@@ -0,0 +1 @@
uid://8fxlwrnwr78v

View File

@@ -0,0 +1 @@
uid://vn771ej7jl5b

View File

@@ -0,0 +1 @@
uid://bu4g2k4db17yj

View File

@@ -0,0 +1 @@
uid://duvxhrldamqcg

View File

@@ -0,0 +1 @@
uid://bfrugqjdsgk44

View File

@@ -0,0 +1 @@
uid://dr372hrl1xv5o

View File

@@ -0,0 +1 @@
uid://dasroldd6i3nf

View File

@@ -0,0 +1 @@
uid://dago30mmqdiwc

25
godot/Himegari.sln Normal file
View File

@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Himegari", "Himegari.csproj", "{5821B505-EBD3-4B50-A83A-7AFE22AA1528}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
ExportDebug|Any CPU = ExportDebug|Any CPU
ExportRelease|Any CPU = ExportRelease|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5821B505-EBD3-4B50-A83A-7AFE22AA1528}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5821B505-EBD3-4B50-A83A-7AFE22AA1528}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5821B505-EBD3-4B50-A83A-7AFE22AA1528}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
{5821B505-EBD3-4B50-A83A-7AFE22AA1528}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
{5821B505-EBD3-4B50-A83A-7AFE22AA1528}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
{5821B505-EBD3-4B50-A83A-7AFE22AA1528}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1 @@
uid://bbo8vuk5g8ky2

View File

@@ -0,0 +1 @@
uid://ct34ufym8j2h0

View File

@@ -605,7 +605,7 @@ public partial class Main : Godot.Control
GD.Print(StepLimitDiagnosticFormatter.Format(haltTrace, _table!));
CaptureStallDiagnostic(haltTrace, "step-limit");
}
if (_selftest) RunSelfTest();
if (_selftest) RunSelfTestAndQuitOnFailure();
}
}
finally { perf?.EndFrame(); }
@@ -2057,9 +2057,8 @@ public partial class Main : Godot.Control
&& debugEntries.Select(entry => entry.PackedId).Distinct().Count() == debugEntries.Count;
var launcherSmoke = new DebugSceneLauncher();
AddChild(launcherSmoke);
launcherSmoke.Open(debugEntries, "SYSTEM4.BIN > TITLE.BIN");
launcherSmoke.Hide();
launcherSmoke.QueueFree();
launcherSmoke.Open(debugEntries, "SYSTEM4.BIN > TITLE.BIN", present: false);
launcherSmoke.Free();
bool sleepMinimumOk = GodotAdvHost.NormalizeSleepMilliseconds(0, 1.0) == 1
&& GodotAdvHost.NormalizeSleepMilliseconds(100, 1.0) == 100;
bool inputTranslationOk = Win32VirtualKeyTranslator.TryTranslate(
@@ -2381,6 +2380,19 @@ public partial class Main : Godot.Control
GetTree().Quit(ok ? 0 : 1);
}
private void RunSelfTestAndQuitOnFailure()
{
try
{
RunSelfTest();
}
catch (Exception exception)
{
GD.PushError($"SELFTEST FAILED: {exception}");
GetTree().Quit(1);
}
}
private static string DefaultPageMapPath(string scene)
{
string fileName = $"page-map-{scene.ToUpperInvariant()}.jsonl";

View File

@@ -0,0 +1 @@
uid://cmsnr2a11457h

View File

@@ -0,0 +1 @@
uid://bqwevje8by8yn

View File

@@ -0,0 +1 @@
uid://8cfjbhv1b5k7

View File

@@ -0,0 +1 @@
uid://d1d60fk2538k5

View File

@@ -0,0 +1 @@
uid://b8wh2a0rspxpp

View File

@@ -0,0 +1 @@
uid://3hc1deciabid

View File

@@ -0,0 +1 @@
uid://dli3spml06e02

View File

@@ -0,0 +1 @@
uid://dl4vnduqdhes0

View File

@@ -0,0 +1 @@
uid://dbps8c8juv72d

View File

@@ -0,0 +1 @@
uid://b2poi16uh5rsh

View File

@@ -0,0 +1 @@
uid://dwo5hjh8m6a3v

1
godot/build/.gdignore Normal file
View File

@@ -0,0 +1 @@
# Disposable runtime captures belong under build/, but Godot must not import or package them.

29
godot/export_presets.cfg Normal file
View File

@@ -0,0 +1,29 @@
[preset.0]
name="Linux x86_64"
platform="Linux"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../build/export/linux-x64/Himegari.x86_64"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false