mirror of
https://github.com/godotengine/godot.git
synced 2024-11-27 09:16:35 +08:00
Build C# csproj instead of the solution
This commit is contained in:
parent
5c1295dc20
commit
2a1523d751
@ -12,6 +12,7 @@ namespace GodotTools.Build
|
||||
public sealed partial class BuildInfo : RefCounted // TODO Remove RefCounted once we have proper serialization
|
||||
{
|
||||
public string Solution { get; private set; }
|
||||
public string Project { get; private set; }
|
||||
public string Configuration { get; private set; }
|
||||
public string? RuntimeIdentifier { get; private set; }
|
||||
public string? PublishOutputDir { get; private set; }
|
||||
@ -28,6 +29,7 @@ namespace GodotTools.Build
|
||||
{
|
||||
return obj is BuildInfo other &&
|
||||
other.Solution == Solution &&
|
||||
other.Project == Project &&
|
||||
other.Configuration == Configuration && other.RuntimeIdentifier == RuntimeIdentifier &&
|
||||
other.PublishOutputDir == PublishOutputDir && other.Restore == Restore &&
|
||||
other.Rebuild == Rebuild && other.OnlyClean == OnlyClean &&
|
||||
@ -41,6 +43,7 @@ namespace GodotTools.Build
|
||||
{
|
||||
int hash = 17;
|
||||
hash = (hash * 29) + Solution.GetHashCode();
|
||||
hash = (hash * 29) + Project.GetHashCode();
|
||||
hash = (hash * 29) + Configuration.GetHashCode();
|
||||
hash = (hash * 29) + (RuntimeIdentifier?.GetHashCode() ?? 0);
|
||||
hash = (hash * 29) + (PublishOutputDir?.GetHashCode() ?? 0);
|
||||
@ -57,22 +60,25 @@ namespace GodotTools.Build
|
||||
private BuildInfo()
|
||||
{
|
||||
Solution = string.Empty;
|
||||
Project = string.Empty;
|
||||
Configuration = string.Empty;
|
||||
}
|
||||
|
||||
public BuildInfo(string solution, string configuration, bool restore, bool rebuild, bool onlyClean)
|
||||
public BuildInfo(string solution, string project, string configuration, bool restore, bool rebuild, bool onlyClean)
|
||||
{
|
||||
Solution = solution;
|
||||
Project = project;
|
||||
Configuration = configuration;
|
||||
Restore = restore;
|
||||
Rebuild = rebuild;
|
||||
OnlyClean = onlyClean;
|
||||
}
|
||||
|
||||
public BuildInfo(string solution, string configuration, string runtimeIdentifier,
|
||||
public BuildInfo(string solution, string project, string configuration, string runtimeIdentifier,
|
||||
string publishOutputDir, bool restore, bool rebuild, bool onlyClean)
|
||||
{
|
||||
Solution = solution;
|
||||
Project = project;
|
||||
Configuration = configuration;
|
||||
RuntimeIdentifier = runtimeIdentifier;
|
||||
PublishOutputDir = publishOutputDir;
|
||||
|
@ -262,7 +262,7 @@ namespace GodotTools.Build
|
||||
bool onlyClean = false
|
||||
)
|
||||
{
|
||||
var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, configuration,
|
||||
var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, GodotSharpDirs.ProjectCsProjPath, configuration,
|
||||
restore: true, rebuild, onlyClean);
|
||||
|
||||
// If a platform was not specified, try determining the current one. If that fails, let MSBuild auto-detect it.
|
||||
@ -282,7 +282,7 @@ namespace GodotTools.Build
|
||||
[DisallowNull] string publishOutputDir
|
||||
)
|
||||
{
|
||||
var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, configuration,
|
||||
var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, GodotSharpDirs.ProjectCsProjPath, configuration,
|
||||
runtimeIdentifier, publishOutputDir, restore: true, rebuild: false, onlyClean: false);
|
||||
|
||||
buildInfo.CustomProperties.Add($"GodotTargetPlatform={platform}");
|
||||
|
@ -139,8 +139,8 @@ namespace GodotTools.Build
|
||||
// `dotnet clean` / `dotnet build` commands
|
||||
arguments.Add(buildInfo.OnlyClean ? "clean" : "build");
|
||||
|
||||
// Solution
|
||||
arguments.Add(buildInfo.Solution);
|
||||
// C# Project
|
||||
arguments.Add(buildInfo.Project);
|
||||
|
||||
// `dotnet clean` doesn't recognize these options
|
||||
if (!buildInfo.OnlyClean)
|
||||
@ -180,8 +180,8 @@ namespace GodotTools.Build
|
||||
{
|
||||
arguments.Add("publish"); // `dotnet publish` command
|
||||
|
||||
// Solution
|
||||
arguments.Add(buildInfo.Solution);
|
||||
// C# Project
|
||||
arguments.Add(buildInfo.Project);
|
||||
|
||||
// Restore
|
||||
// `dotnet publish` restores by default, unless requested not to
|
||||
|
Loading…
Reference in New Issue
Block a user