UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IProjectManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5
6#include "CoreMinimal.h"
7#include "ModuleDescriptor.h"
8
10
15{
16public:
17
19 FString Name;
20
22 FString Description;
23
25 FString Category;
26
29
32
35
38
44
53 {
54 // An empty list is considered the same as supporting all platforms
56 }
57
62 {
63 return TargetPlatforms.Num() == 0;
64 }
65};
66
71{
72
73public:
74 virtual ~IProjectManager() { }
75
82
88 virtual const FProjectDescriptor* GetCurrentProject() const = 0;
89
99 virtual bool LoadProjectFile( const FString& ProjectFile ) = 0;
100
107 virtual bool LoadModulesForProject( const ELoadingPhase::Type LoadingPhase ) = 0;
108
116 virtual bool SubstituteModule(const FString& OriginalModuleName, const FString& NewModuleName) = 0;
117
123
124#if !IS_MONOLITHIC
131#endif
132
140 virtual const FString& GetAutoLoadProjectFileName() = 0;
141
153 virtual bool SignSampleProject(const FString& FilePath, const FString& Category, FText& OutFailReason) = 0;
154
163 virtual bool QueryStatusForProject(const FString& FilePath, FProjectStatus& OutProjectStatus) const = 0;
164
173
181 virtual void UpdateSupportedTargetPlatformsForProject(const FString& FilePath, const FName& InPlatformName, const bool bIsSupported) = 0;
182
189 virtual void UpdateSupportedTargetPlatformsForCurrentProject(const FName& InPlatformName, const bool bIsSupported) = 0;
190
192 virtual void ClearSupportedTargetPlatformsForProject(const FString& FilePath) = 0;
193
196
200
206 virtual bool HasDefaultPluginSettings() const = 0;
207
218 virtual bool SetPluginEnabled(const FString& PluginName, bool bEnabled, FText& OutFailReason) = 0;
219
223 virtual bool RemovePluginReference(const FString& PluginName, FText& OutFailReason) = 0;
224
232 virtual bool UpdateAdditionalPluginDirectory(const FString& Dir, const bool bAddOrRemove) = 0;
233
236
240 virtual bool IsCurrentProjectDirty() const = 0;
241
249
255 virtual bool IsEnterpriseProject() = 0;
256
262 virtual void SetIsEnterpriseProject(bool bValue) = 0;
263
268
270 virtual bool IsSuppressingProjectFileWrite() const = 0;
271
273 virtual void AddSuppressProjectFileWrite(const FName InName) = 0;
274
276 virtual void RemoveSuppressProjectFileWrite(const FName InName) = 0;
277};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition NameTypes.h:617
Definition IProjectManager.h:15
bool bCodeBasedProject
Definition IProjectManager.h:31
bool bSignedSampleProject
Definition IProjectManager.h:28
bool SupportsAllPlatforms() const
Definition IProjectManager.h:61
bool IsTargetPlatformSupported(const FName &InPlatformName, const bool bAllowSupportedIfEmptyList=true) const
Definition IProjectManager.h:52
FString Name
Definition IProjectManager.h:19
TArray< FName > TargetPlatforms
Definition IProjectManager.h:37
bool bRequiresUpdate
Definition IProjectManager.h:34
FString Category
Definition IProjectManager.h:25
FProjectStatus()
Definition IProjectManager.h:39
FString Description
Definition IProjectManager.h:22
Definition Text.h:385
Definition IProjectManager.h:71
virtual void UpdateSupportedTargetPlatformsForCurrentProject(const FName &InPlatformName, const bool bIsSupported)=0
virtual void UpdateSupportedTargetPlatformsForProject(const FString &FilePath, const FName &InPlatformName, const bool bIsSupported)=0
virtual void ClearSupportedTargetPlatformsForProject(const FString &FilePath)=0
static PROJECTS_API IProjectManager & Get()
Definition ProjectManager.cpp:536
virtual bool QueryStatusForProject(const FString &FilePath, FProjectStatus &OutProjectStatus) const =0
virtual ~IProjectManager()
Definition IProjectManager.h:74
virtual bool QueryStatusForCurrentProject(FProjectStatus &OutProjectStatus) const =0
virtual bool SignSampleProject(const FString &FilePath, const FString &Category, FText &OutFailReason)=0
virtual bool RemovePluginReference(const FString &PluginName, FText &OutFailReason)=0
virtual bool HasDefaultPluginSettings() const =0
virtual bool IsCurrentProjectDirty() const =0
DECLARE_EVENT_TwoParams(IProjectManager, FLoadingModulesForPhaseEvent, ELoadingPhase::Type, bool)
virtual bool UpdateAdditionalPluginDirectory(const FString &Dir, const bool bAddOrRemove)=0
virtual const FProjectDescriptor * GetCurrentProject() const =0
virtual bool CheckModuleCompatibility(TArray< FString > &OutIncompatibleModules)=0
virtual const TArray< FString > & GetAdditionalPluginDirectories() const =0
virtual bool IsSuppressingProjectFileWrite() const =0
virtual const FString & GetAutoLoadProjectFileName()=0
virtual FLoadingModulesForPhaseEvent & OnLoadingPhaseComplete()=0
virtual bool IsEnterpriseProject()=0
virtual TArray< FModuleContextInfo > & GetCurrentProjectModuleContextInfos()=0
virtual bool SetPluginEnabled(const FString &PluginName, bool bEnabled, FText &OutFailReason)=0
virtual void SetIsEnterpriseProject(bool bValue)=0
virtual bool LoadModulesForProject(const ELoadingPhase::Type LoadingPhase)=0
DECLARE_MULTICAST_DELEGATE(FOnTargetPlatformsForCurrentProjectChangedEvent)
virtual bool SaveCurrentProjectToDisk(FText &OutFailReason)=0
virtual void AddSuppressProjectFileWrite(const FName InName)=0
virtual void ClearSupportedTargetPlatformsForCurrentProject()=0
virtual FOnTargetPlatformsForCurrentProjectChangedEvent & OnTargetPlatformsForCurrentProjectChanged()=0
virtual bool SubstituteModule(const FString &OriginalModuleName, const FString &NewModuleName)=0
virtual bool LoadProjectFile(const FString &ProjectFile)=0
virtual void RemoveSuppressProjectFileWrite(const FName InName)=0
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
Type
Definition ModuleDescriptor.h:27
@ false
Definition radaudio_common.h:23
Definition ProjectDescriptor.h:43