diff options
4 files changed, 15 insertions, 31 deletions
diff --git a/modules/mono/build_scripts/solution_builder.py b/modules/mono/build_scripts/solution_builder.py index 371819fd72..03f4e57f02 100644 --- a/modules/mono/build_scripts/solution_builder.py +++ b/modules/mono/build_scripts/solution_builder.py @@ -142,9 +142,7 @@ def build_solution(env, solution_path, build_config, extra_msbuild_args=[]):      # Build solution -    targets = ["Restore", "Build"] - -    msbuild_args += [solution_path, "/t:%s" % ",".join(targets), "/p:Configuration=" + build_config] +    msbuild_args += [solution_path, "/restore", "/t:Build", "/p:Configuration=" + build_config]      msbuild_args += extra_msbuild_args      run_command(msbuild_path, msbuild_args, env_override=msbuild_env, name="msbuild") diff --git a/modules/mono/editor/GodotTools/GodotTools/Build/BuildSystem.cs b/modules/mono/editor/GodotTools/GodotTools/Build/BuildSystem.cs index e55558c100..34e42489eb 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Build/BuildSystem.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Build/BuildSystem.cs @@ -47,19 +47,14 @@ namespace GodotTools.Build          private static bool PrintBuildOutput =>              (bool)EditorSettings.GetSetting("mono/builds/print_build_output"); -        private static Process LaunchBuild(string solution, IEnumerable<string> targets, string config, string loggerOutputDir, IEnumerable<string> customProperties = null) +        private static Process LaunchBuild(BuildInfo buildInfo)          {              (string msbuildPath, BuildTool buildTool) = MsBuildFinder.FindMsBuild();              if (msbuildPath == null)                  throw new FileNotFoundException("Cannot find the MSBuild executable."); -            var customPropertiesList = new List<string>(); - -            if (customProperties != null) -                customPropertiesList.AddRange(customProperties); - -            string compilerArgs = BuildArguments(buildTool, solution, targets, config, loggerOutputDir, customPropertiesList); +            string compilerArgs = BuildArguments(buildTool, buildInfo);              var startInfo = new ProcessStartInfo(msbuildPath, compilerArgs); @@ -100,19 +95,7 @@ namespace GodotTools.Build          public static int Build(BuildInfo buildInfo)          { -            return Build(buildInfo.Solution, buildInfo.Targets, buildInfo.Configuration, -                buildInfo.LogsDirPath, buildInfo.CustomProperties); -        } - -        public static Task<int> BuildAsync(BuildInfo buildInfo) -        { -            return BuildAsync(buildInfo.Solution, buildInfo.Targets, buildInfo.Configuration, -                buildInfo.LogsDirPath, buildInfo.CustomProperties); -        } - -        public static int Build(string solution, string[] targets, string config, string loggerOutputDir, IEnumerable<string> customProperties = null) -        { -            using (var process = LaunchBuild(solution, targets, config, loggerOutputDir, customProperties)) +            using (var process = LaunchBuild(buildInfo))              {                  process.WaitForExit(); @@ -120,9 +103,9 @@ namespace GodotTools.Build              }          } -        public static async Task<int> BuildAsync(string solution, IEnumerable<string> targets, string config, string loggerOutputDir, IEnumerable<string> customProperties = null) +        public static async Task<int> BuildAsync(BuildInfo buildInfo)          { -            using (var process = LaunchBuild(solution, targets, config, loggerOutputDir, customProperties)) +            using (var process = LaunchBuild(buildInfo))              {                  await process.WaitForExitAsync(); @@ -130,17 +113,18 @@ namespace GodotTools.Build              }          } -        private static string BuildArguments(BuildTool buildTool, string solution, IEnumerable<string> targets, string config, string loggerOutputDir, IEnumerable<string> customProperties) +        private static string BuildArguments(BuildTool buildTool, BuildInfo buildInfo)          {              string arguments = string.Empty;              if (buildTool == BuildTool.DotnetCli)                  arguments += "msbuild "; // `dotnet msbuild` command -            arguments += $@"""{solution}"" /v:normal /t:{string.Join(",", targets)} ""/p:{"Configuration=" + config}"" " + -                         $@"""/l:{typeof(GodotBuildLogger).FullName},{GodotBuildLogger.AssemblyPath};{loggerOutputDir}"""; +            arguments += $@"""{buildInfo.Solution}"" /t:{string.Join(",", buildInfo.Targets)} " + +                         $@"""/p:{"Configuration=" + buildInfo.Configuration}"" /v:normal " + +                         $@"""/l:{typeof(GodotBuildLogger).FullName},{GodotBuildLogger.AssemblyPath};{buildInfo.LogsDirPath}"""; -            foreach (string customProperty in customProperties) +            foreach (string customProperty in buildInfo.CustomProperties)              {                  arguments += " /p:" + customProperty;              } diff --git a/modules/mono/editor/GodotTools/GodotTools/BuildInfo.cs b/modules/mono/editor/GodotTools/GodotTools/BuildInfo.cs index cca0983c01..ab090c46e7 100644 --- a/modules/mono/editor/GodotTools/GodotTools/BuildInfo.cs +++ b/modules/mono/editor/GodotTools/GodotTools/BuildInfo.cs @@ -12,6 +12,7 @@ namespace GodotTools          public string Solution { get; }          public string[] Targets { get; }          public string Configuration { get; } +        public bool Restore { get; }          public Array<string> CustomProperties { get; } = new Array<string>(); // TODO Use List once we have proper serialization          public string LogsDirPath => Path.Combine(GodotSharpDirs.BuildLogsDirs, $"{Solution.MD5Text()}_{Configuration}"); @@ -39,11 +40,12 @@ namespace GodotTools          {          } -        public BuildInfo(string solution, string[] targets, string configuration) +        public BuildInfo(string solution, string[] targets, string configuration, bool restore)          {              Solution = solution;              Targets = targets;              Configuration = configuration; +            Restore = restore;          }      }  } diff --git a/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs b/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs index 598787ba03..0974d23176 100644 --- a/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs +++ b/modules/mono/editor/GodotTools/GodotTools/BuildManager.cs @@ -175,7 +175,7 @@ namespace GodotTools              {                  pr.Step("Building project solution", 0); -                var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, targets: new[] {"Restore", "Build"}, config); +                var buildInfo = new BuildInfo(GodotSharpDirs.ProjectSlnPath, targets: new[] {"Build"}, config, restore: true);                  bool escapeNeedsDoubleBackslash = buildTool == BuildTool.MsBuildMono || buildTool == BuildTool.DotnetCli;  |