53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Collections.ObjectModel;
 | |
| 
 | |
| namespace UnrealSharpBuildTool.Actions;
 | |
| 
 | |
| public class BuildSolution : BuildToolAction
 | |
| {
 | |
|     private readonly BuildConfig _buildConfig;
 | |
|     private readonly string _folder;
 | |
|     private readonly Collection<string>? _extraArguments;
 | |
| 
 | |
|     public BuildSolution(string folder, Collection<string>? extraArguments = null, BuildConfig buildConfig = BuildConfig.Debug)
 | |
|     {
 | |
|         _folder = Program.FixPath(folder);
 | |
|         _buildConfig = buildConfig;
 | |
|         _extraArguments = extraArguments;
 | |
|     }
 | |
| 
 | |
|     public override bool RunAction()
 | |
|     {
 | |
|         if (!Directory.Exists(_folder))
 | |
|         {
 | |
|             throw new Exception($"Couldn't find the solution file at \"{_folder}\"");
 | |
|         }
 | |
| 
 | |
|         using BuildToolProcess buildSolutionProcess = new BuildToolProcess();
 | |
| 
 | |
|         if (_buildConfig == BuildConfig.Publish)
 | |
|         {
 | |
|             buildSolutionProcess.StartInfo.ArgumentList.Add("publish");
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             buildSolutionProcess.StartInfo.ArgumentList.Add("build");
 | |
|         }
 | |
| 
 | |
|         buildSolutionProcess.StartInfo.ArgumentList.Add($"{_folder}");
 | |
| 
 | |
|         buildSolutionProcess.StartInfo.ArgumentList.Add("--configuration");
 | |
|         buildSolutionProcess.StartInfo.ArgumentList.Add(Program.GetBuildConfiguration(_buildConfig));
 | |
|         buildSolutionProcess.StartInfo.WorkingDirectory = _folder;
 | |
|         
 | |
|         if (_extraArguments != null)
 | |
|         {
 | |
|             foreach (var argument in _extraArguments)
 | |
|             {
 | |
|                 buildSolutionProcess.StartInfo.ArgumentList.Add(argument);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return buildSolutionProcess.StartBuildToolProcess();
 | |
|     }
 | |
| }
 |