43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Collections.ObjectModel;
 | |
| 
 | |
| namespace UnrealSharpBuildTool.Actions;
 | |
| 
 | |
| public class PackageProject : BuildToolAction
 | |
| {
 | |
|     public override bool RunAction()
 | |
|     {
 | |
|         string archiveDirectoryPath = Program.TryGetArgument("ArchiveDirectory");
 | |
|         
 | |
|         if (string.IsNullOrEmpty(archiveDirectoryPath))
 | |
|         {
 | |
|             throw new Exception("ArchiveDirectory argument is required for the Publish action.");
 | |
|         }
 | |
| 
 | |
|         string rootProjectPath = Path.Combine(archiveDirectoryPath, Program.BuildToolOptions.ProjectName);
 | |
|         string binariesPath = Program.GetOutputPath(rootProjectPath);
 | |
|         string bindingsPath = Path.Combine(Program.BuildToolOptions.PluginDirectory, "Managed", "UnrealSharp");
 | |
|         string bindingsOutputPath = Path.Combine(Program.BuildToolOptions.PluginDirectory, "Intermediate", "Build", "Managed");
 | |
|         
 | |
|         Collection<string> extraArguments =
 | |
|         [
 | |
|             "--self-contained",
 | |
|             "--runtime",
 | |
|             "win-x64",
 | |
| 			"-p:DisableWithEditor=true",
 | |
|             $"-p:PublishDir=\"{binariesPath}\"",
 | |
|             $"-p:OutputPath=\"{bindingsOutputPath}\"",
 | |
|         ];
 | |
| 
 | |
|         BuildSolution buildBindings = new BuildSolution(bindingsPath, extraArguments, BuildConfig.Publish);
 | |
|         buildBindings.RunAction();
 | |
|         
 | |
|         BuildUserSolution buildUserSolution = new BuildUserSolution(null, BuildConfig.Publish);
 | |
|         buildUserSolution.RunAction();
 | |
|         
 | |
|         WeaveProject weaveProject = new WeaveProject(binariesPath);
 | |
|         weaveProject.RunAction();
 | |
|         
 | |
|         return true;
 | |
|     }
 | |
| }
 |