Mono: Fix passing wrong logger assembly path to MSBuild
- Add option to print MSBuild's stdout and stderr instead of redirecting it. This can be enabled by setting the environment variable: Godot_DEBUG_MSBUILD=1
This commit is contained in:
parent
7933a6cc9f
commit
25f10b3c40
2 changed files with 30 additions and 12 deletions
|
|
@ -78,6 +78,8 @@ namespace GodotSharpTools.Build
|
|||
|
||||
public bool Build(string loggerAssemblyPath, string loggerOutputDir, string[] customProperties = null)
|
||||
{
|
||||
bool debugMSBuild = IsDebugMSBuildRequested();
|
||||
|
||||
List<string> customPropertiesList = new List<string>();
|
||||
|
||||
if (customProperties != null)
|
||||
|
|
@ -92,9 +94,10 @@ namespace GodotSharpTools.Build
|
|||
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo(GetMSBuildPath(), compilerArgs);
|
||||
|
||||
// No console output, thanks
|
||||
startInfo.RedirectStandardOutput = true;
|
||||
startInfo.RedirectStandardError = true;
|
||||
bool redirectOutput = !debugMSBuild;
|
||||
|
||||
startInfo.RedirectStandardOutput = redirectOutput;
|
||||
startInfo.RedirectStandardError = redirectOutput;
|
||||
startInfo.UseShellExecute = false;
|
||||
|
||||
if (UsingMonoMSBuildOnWindows)
|
||||
|
|
@ -116,8 +119,11 @@ namespace GodotSharpTools.Build
|
|||
|
||||
process.Start();
|
||||
|
||||
process.BeginOutputReadLine();
|
||||
process.BeginErrorReadLine();
|
||||
if (redirectOutput)
|
||||
{
|
||||
process.BeginOutputReadLine();
|
||||
process.BeginErrorReadLine();
|
||||
}
|
||||
|
||||
process.WaitForExit();
|
||||
|
||||
|
|
@ -129,6 +135,8 @@ namespace GodotSharpTools.Build
|
|||
|
||||
public bool BuildAsync(string loggerAssemblyPath, string loggerOutputDir, string[] customProperties = null)
|
||||
{
|
||||
bool debugMSBuild = IsDebugMSBuildRequested();
|
||||
|
||||
if (process != null)
|
||||
throw new InvalidOperationException("Already in use");
|
||||
|
||||
|
|
@ -146,9 +154,10 @@ namespace GodotSharpTools.Build
|
|||
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo(GetMSBuildPath(), compilerArgs);
|
||||
|
||||
// No console output, thanks
|
||||
startInfo.RedirectStandardOutput = true;
|
||||
startInfo.RedirectStandardError = true;
|
||||
bool redirectOutput = !debugMSBuild;
|
||||
|
||||
startInfo.RedirectStandardOutput = redirectOutput;
|
||||
startInfo.RedirectStandardError = redirectOutput;
|
||||
startInfo.UseShellExecute = false;
|
||||
|
||||
if (UsingMonoMSBuildOnWindows)
|
||||
|
|
@ -171,8 +180,11 @@ namespace GodotSharpTools.Build
|
|||
|
||||
process.Start();
|
||||
|
||||
process.BeginOutputReadLine();
|
||||
process.BeginErrorReadLine();
|
||||
if (redirectOutput)
|
||||
{
|
||||
process.BeginOutputReadLine();
|
||||
process.BeginErrorReadLine();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -220,6 +232,11 @@ namespace GodotSharpTools.Build
|
|||
Dispose();
|
||||
}
|
||||
|
||||
private static bool IsDebugMSBuildRequested()
|
||||
{
|
||||
return Environment.GetEnvironmentVariable("GODOT_DEBUG_MSBUILD").Trim() == "1";
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (process != null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue