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; | |||
|  |     } | |||
|  | } |