UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ProjectDescriptor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Containers/Set.h"
8#include "CoreMinimal.h"
9#include "CustomBuildSteps.h"
10#include "HAL/Platform.h"
11#include "ModuleDescriptor.h"
14#include "UObject/NameTypes.h"
16
17class FJsonObject;
18class FText;
19
24{
25 enum Type
26 {
31 // !!!!!!!!!! IMPORTANT: Remember to also update LatestPluginDescriptorFileVersion in Plugins.cs (and Plugin system documentation) when this changes!!!!!!!!!!!
32 // -----<new versions can be added before this line>-------------------------------------------------
33 // - this needs to be the last line (see note below)
36 };
37}
38
43{
46
77
79 FString Category;
80
82 FString Description;
83
86
89
92
95
98
101
104
107
110
112 PROJECTS_API void Sign(const FString& FilePath);
113
115 PROJECTS_API bool IsSigned(const FString& FilePath) const;
116
118 PROJECTS_API int32 FindPluginReferenceIndex(const FString& PluginName) const;
119
121 PROJECTS_API void UpdateSupportedTargetPlatforms(const FName& InPlatformName, bool bIsSupported);
122
124 PROJECTS_API bool Load(const FString& FileName, FText& OutFailReason);
125
127 PROJECTS_API bool Read(const FJsonObject& Object, const FString& PathToProject, FText& OutFailReason);
128
130 PROJECTS_API bool Save(const FString& FileName, FText& OutFailReason);
131
133 PROJECTS_API void Write(TJsonWriter<>& Writer, const FString& PathToProject) const;
134
136 static PROJECTS_API FString GetExtension();
137
140 {
141 return AdditionalPluginDirectories;
142 }
143
150 PROJECTS_API bool AddPluginDirectory(const FString& Dir);
157 PROJECTS_API bool RemovePluginDirectory(const FString& Dir);
158
161 {
162 return AdditionalRootDirectories;
163 }
164
171 PROJECTS_API bool AddRootDirectory(const FString& Dir);
178 PROJECTS_API bool RemoveRootDirectory(const FString& Dir);
179
180#if WITH_EDITOR
182 PROJECTS_API bool HasModule(FName ModuleName) const;
183#endif //if WITH_EDITOR
184
185private:
187 PROJECTS_API const FString MakePathRelativeToProject(const FString& Dir, const FString& PathToProject) const;
188
193 TArray<FString> AdditionalPluginDirectories;
194
199 TArray<FString> AdditionalRootDirectories;
200
201#if WITH_EDITOR
204#endif //if WITH_EDITOR
205
208};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition JsonObject.h:23
Definition NameTypes.h:617
Definition Text.h:385
Definition Array.h:670
Definition JsonWriter.h:85
Definition ProjectDescriptor.h:24
Type
Definition ProjectDescriptor.h:26
@ Initial
Definition ProjectDescriptor.h:28
@ Invalid
Definition ProjectDescriptor.h:27
@ LatestPlusOne
Definition ProjectDescriptor.h:34
@ NameHash
Definition ProjectDescriptor.h:29
@ Latest
Definition ProjectDescriptor.h:35
@ ProjectPluginUnification
Definition ProjectDescriptor.h:30
FValue::ConstObject FConstObject
Definition RapidJsonUtils.h:65
Definition CustomBuildSteps.h:17
Definition ProjectDescriptor.h:43
PROJECTS_API bool RemoveRootDirectory(const FString &Dir)
Definition ProjectDescriptor.cpp:417
TArray< FName > TargetPlatforms
Definition ProjectDescriptor.h:91
friend struct FProjectsLoadingPluginDescriptorTestsHelper
Definition ProjectDescriptor.h:206
FCustomBuildSteps PostBuildSteps
Definition ProjectDescriptor.h:100
TArray< FPluginReferenceDescriptor > Plugins
Definition ProjectDescriptor.h:88
EProjectDescriptorVersion::Type FileVersion
Definition ProjectDescriptor.h:45
FString EngineAssociation
Definition ProjectDescriptor.h:76
PROJECTS_API bool AddPluginDirectory(const FString &Dir)
Definition ProjectDescriptor.cpp:366
FString Description
Definition ProjectDescriptor.h:82
PROJECTS_API void UpdateSupportedTargetPlatforms(const FName &InPlatformName, bool bIsSupported)
Definition ProjectDescriptor.cpp:46
const TArray< FString > & GetAdditionalPluginDirectories() const
Definition ProjectDescriptor.h:139
PROJECTS_API FProjectDescriptor()
Definition ProjectDescriptor.cpp:16
const TArray< FString > & GetAdditionalRootDirectories() const
Definition ProjectDescriptor.h:160
TArray< FModuleDescriptor > Modules
Definition ProjectDescriptor.h:85
PROJECTS_API int32 FindPluginReferenceIndex(const FString &PluginName) const
Definition ProjectDescriptor.cpp:34
static PROJECTS_API FString GetExtension()
Definition ProjectDescriptor.cpp:350
FString Category
Definition ProjectDescriptor.h:79
PROJECTS_API bool AddRootDirectory(const FString &Dir)
Definition ProjectDescriptor.cpp:397
FCustomBuildSteps PreBuildSteps
Definition ProjectDescriptor.h:97
bool bIsEnterpriseProject
Definition ProjectDescriptor.h:103
PROJECTS_API bool IsSigned(const FString &FilePath) const
Definition ProjectDescriptor.cpp:29
PROJECTS_API bool RemovePluginDirectory(const FString &Dir)
Definition ProjectDescriptor.cpp:388
bool bDisableEnginePluginsByDefault
Definition ProjectDescriptor.h:106
uint32 EpicSampleNameHash
Definition ProjectDescriptor.h:94