Merge pull request #73939 from raulsntos/dotnet/export-symbols
C#: Add option to disable exporting debug symbols
This commit is contained in:
commit
5047892939
2 changed files with 27 additions and 10 deletions
|
@ -279,12 +279,19 @@ namespace GodotTools.Build
|
||||||
[DisallowNull] string configuration,
|
[DisallowNull] string configuration,
|
||||||
[DisallowNull] string platform,
|
[DisallowNull] string platform,
|
||||||
[DisallowNull] string runtimeIdentifier,
|
[DisallowNull] string runtimeIdentifier,
|
||||||
[DisallowNull] string publishOutputDir
|
[DisallowNull] string publishOutputDir,
|
||||||
|
bool includeDebugSymbols = true
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, GodotSharpDirs.ProjectCsProjPath, configuration,
|
var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, GodotSharpDirs.ProjectCsProjPath, configuration,
|
||||||
runtimeIdentifier, publishOutputDir, restore: true, rebuild: false, onlyClean: false);
|
runtimeIdentifier, publishOutputDir, restore: true, rebuild: false, onlyClean: false);
|
||||||
|
|
||||||
|
if (!includeDebugSymbols)
|
||||||
|
{
|
||||||
|
buildInfo.CustomProperties.Add("DebugType=None");
|
||||||
|
buildInfo.CustomProperties.Add("DebugSymbols=false");
|
||||||
|
}
|
||||||
|
|
||||||
buildInfo.CustomProperties.Add($"GodotTargetPlatform={platform}");
|
buildInfo.CustomProperties.Add($"GodotTargetPlatform={platform}");
|
||||||
|
|
||||||
if (Internal.GodotIsRealTDouble())
|
if (Internal.GodotIsRealTDouble())
|
||||||
|
@ -308,9 +315,10 @@ namespace GodotTools.Build
|
||||||
[DisallowNull] string configuration,
|
[DisallowNull] string configuration,
|
||||||
[DisallowNull] string platform,
|
[DisallowNull] string platform,
|
||||||
[DisallowNull] string runtimeIdentifier,
|
[DisallowNull] string runtimeIdentifier,
|
||||||
string publishOutputDir
|
string publishOutputDir,
|
||||||
|
bool includeDebugSymbols = true
|
||||||
) => PublishProjectBlocking(CreatePublishBuildInfo(configuration,
|
) => PublishProjectBlocking(CreatePublishBuildInfo(configuration,
|
||||||
platform, runtimeIdentifier, publishOutputDir));
|
platform, runtimeIdentifier, publishOutputDir, includeDebugSymbols));
|
||||||
|
|
||||||
public static bool EditorBuildCallback()
|
public static bool EditorBuildCallback()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
using Godot;
|
using Godot;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using GodotTools.Build;
|
using GodotTools.Build;
|
||||||
|
@ -35,6 +34,17 @@ namespace GodotTools.Export
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ "default_value", false }
|
{ "default_value", false }
|
||||||
|
},
|
||||||
|
new Godot.Collections.Dictionary()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
"option", new Godot.Collections.Dictionary()
|
||||||
|
{
|
||||||
|
{ "name", "dotnet/include_debug_symbols" },
|
||||||
|
{ "type", (int)Variant.Type.Bool }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "default_value", true }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -110,11 +120,10 @@ namespace GodotTools.Export
|
||||||
throw new NotImplementedException("Target platform not yet implemented.");
|
throw new NotImplementedException("Target platform not yet implemented.");
|
||||||
}
|
}
|
||||||
|
|
||||||
string outputDir = new FileInfo(path).Directory?.FullName ??
|
|
||||||
throw new FileNotFoundException("Output base directory not found.");
|
|
||||||
|
|
||||||
string buildConfig = isDebug ? "ExportDebug" : "ExportRelease";
|
string buildConfig = isDebug ? "ExportDebug" : "ExportRelease";
|
||||||
|
|
||||||
|
bool includeDebugSymbols = (bool)GetOption("dotnet/include_debug_symbols");
|
||||||
|
|
||||||
var archs = new List<string>();
|
var archs = new List<string>();
|
||||||
if (features.Contains("x86_64"))
|
if (features.Contains("x86_64"))
|
||||||
{
|
{
|
||||||
|
@ -151,7 +160,7 @@ namespace GodotTools.Export
|
||||||
// Create temporary publish output directory
|
// Create temporary publish output directory
|
||||||
|
|
||||||
string publishOutputTempDir = Path.Combine(Path.GetTempPath(), "godot-publish-dotnet",
|
string publishOutputTempDir = Path.Combine(Path.GetTempPath(), "godot-publish-dotnet",
|
||||||
$"{Process.GetCurrentProcess().Id}-{buildConfig}-{runtimeIdentifier}");
|
$"{System.Environment.ProcessId}-{buildConfig}-{runtimeIdentifier}");
|
||||||
|
|
||||||
_tempFolders.Add(publishOutputTempDir);
|
_tempFolders.Add(publishOutputTempDir);
|
||||||
|
|
||||||
|
@ -161,7 +170,7 @@ namespace GodotTools.Export
|
||||||
// Execute dotnet publish
|
// Execute dotnet publish
|
||||||
|
|
||||||
if (!BuildManager.PublishProjectBlocking(buildConfig, platform,
|
if (!BuildManager.PublishProjectBlocking(buildConfig, platform,
|
||||||
runtimeIdentifier, publishOutputTempDir))
|
runtimeIdentifier, publishOutputTempDir, includeDebugSymbols))
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("Failed to build project.");
|
throw new InvalidOperationException("Failed to build project.");
|
||||||
}
|
}
|
||||||
|
@ -215,7 +224,7 @@ namespace GodotTools.Export
|
||||||
{
|
{
|
||||||
base._ExportEnd();
|
base._ExportEnd();
|
||||||
|
|
||||||
string aotTempDir = Path.Combine(Path.GetTempPath(), $"godot-aot-{Process.GetCurrentProcess().Id}");
|
string aotTempDir = Path.Combine(Path.GetTempPath(), $"godot-aot-{System.Environment.ProcessId}");
|
||||||
|
|
||||||
if (Directory.Exists(aotTempDir))
|
if (Directory.Exists(aotTempDir))
|
||||||
Directory.Delete(aotTempDir, recursive: true);
|
Directory.Delete(aotTempDir, recursive: true);
|
||||||
|
|
Loading…
Reference in a new issue