Nuke.Unreal
Build Unreal apps in Style.
Loading...
Searching...
No Matches
ProjectDescriptor.cs
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3using System;
4using System.Collections.Generic;
5using System.IO;
6using System.Linq;
8
9namespace Nuke.Unreal;
10
11/// <summary>
12/// The version format for .uproject files. This rarely changes now; project descriptors should maintain backwards compatibility automatically.
13/// </summary>
15{
16 /// <summary>
17 /// Invalid
18 /// </summary>
19 Invalid = 0,
20
21 /// <summary>
22 /// Initial version
23 /// </summary>
24 Initial = 1,
25
26 /// <summary>
27 /// Adding SampleNameHash
28 /// </summary>
29 NameHash = 2,
30
31 /// <summary>
32 /// Unifying plugin/project files (since abandoned, but backwards compatibility maintained)
33 /// </summary>
35
36 /// <summary>
37 /// This needs to be the last line, so we can calculate the value of Latest below
38 /// </summary>
40
41 /// <summary>
42 /// The latest plugin descriptor version
43 /// </summary>
45}
46
47/// <summary>
48/// In-memory representation of a .uproject file
49/// </summary>
50/// <param name="FileVersion">
51/// Descriptor version number.
52/// </param>
53/// <param name="EngineAssociation">
54/// The engine to open this project with.
55/// </param>
56/// <param name="Category">
57/// Category to show under the project browser
58/// </param>
59/// <param name="Description">
60/// Description to show in the project browser
61/// </param>
62/// <param name="Modules">
63/// List of all modules associated with this project
64/// </param>
65/// <param name="Plugins">
66/// List of plugins for this project (may be enabled/disabled)
67/// </param>
68/// <param name="AdditionalRootDirectories">
69/// Array of additional root directories
70/// </param>
71/// <param name="AdditionalPluginDirectories">
72/// List of additional plugin directories to scan for available plugins
73/// </param>
74/// <param name="TargetPlatforms">
75/// Array of platforms that this project is targeting
76/// </param>
77/// <param name="EpicSampleNameHash">
78/// A hash that is used to determine if the project was forked from a sample
79/// </param>
80/// <param name="InitSteps">
81/// Steps to execute before creating rules assemblies in this project
82/// </param>
83/// <param name="PreBuildSteps">
84/// Steps to execute before building targets in this project
85/// </param>
86/// <param name="PostBuildSteps">
87/// Steps to execute before building targets in this project
88/// </param>
89/// <param name="IsEnterpriseProject">
90/// Indicates if this project is an Enterprise project
91/// </param>
92/// <param name="DisableEnginePluginsByDefault">
93/// Indicates that enabled by default engine plugins should not be enabled unless explicitly enabled by the project or target files.
94/// </param>
95public record class ProjectDescriptor(
96 int FileVersion = 3,
97 string? EngineAssociation = null,
98 string? Category = null,
99 string? Description = null,
100 List<ModuleDescriptor>? Modules = null,
101 List<PluginReferenceDescriptor>? Plugins = null,
102 List<string>? AdditionalRootDirectories = null,
103 List<string>? AdditionalPluginDirectories = null,
104 List<UnrealPlatform>? TargetPlatforms = null,
105 uint? EpicSampleNameHash = null,
106 Dictionary<UnrealPlatform, List<string>>? InitSteps = null,
107 Dictionary<UnrealPlatform, List<string>>? PreBuildSteps = null,
108 Dictionary<UnrealPlatform, List<string>>? PostBuildSteps = null,
109 bool? IsEnterpriseProject = null,
110 bool? DisableEnginePluginsByDefault = null
111);
ProjectDescriptorVersion
The version format for .uproject files. This rarely changes now; project descriptors should maintain ...
@ NameHash
Adding SampleNameHash.
@ LatestPlusOne
This needs to be the last line, so we can calculate the value of Latest below.
@ ProjectPluginUnification
Unifying plugin/project files (since abandoned, but backwards compatibility maintained)
@ Latest
The latest plugin descriptor version.
record class ProjectDescriptor(int FileVersion=3, string? EngineAssociation=null, string? Category=null, string? Description=null, List< ModuleDescriptor >? Modules=null, List< PluginReferenceDescriptor >? Plugins=null, List< string >? AdditionalRootDirectories=null, List< string >? AdditionalPluginDirectories=null, List< UnrealPlatform >? TargetPlatforms=null, uint? EpicSampleNameHash=null, Dictionary< UnrealPlatform, List< string > >? InitSteps=null, Dictionary< UnrealPlatform, List< string > >? PreBuildSteps=null, Dictionary< UnrealPlatform, List< string > >? PostBuildSteps=null, bool? IsEnterpriseProject=null, bool? DisableEnginePluginsByDefault=null)
In-memory representation of a .uproject file.