UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ProgramBuildManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
10
11#define UE_API VERSECOMPILER_API
12
13namespace uLang
14{
15// Forward declarations
16class CUTF8StringView;
17
35
37{
38 // For the pieces of this that are set, the toolchain will be constructed
39 // using those specified parts -- for the other toolchain pieces, the
40 // build-manager will perform auto-discovery to fill the rest out.
42
43 //SToolchainParams _ToolchainParams;
44 TSPtr<CSemanticProgram> _ExistingProgram; // Optional existing program
45};
46
48{
49public:
52
57
59
60 const TSRef<CToolchain>& GetToolchain() const { return _Toolchain; }
61 const SProgramContext& GetProgramContext() const { return _ProgramContext; }
62 const TSRef<CSourceProject>& GetSourceProject() const { return _SourceProject; }
63 const TUPtr<SPackageUsage>& GetPackageUsage() const { return _PackageUsage; }
64 TArray<FSolLocalizationInfo> TakeLocalizationInfo() { return _Toolchain->TakeLocalizationInfo(); }
65 TArray<FSolLocalizationInfo> TakeStringInfo() { return _Toolchain->TakeStringInfo(); }
66
73
75 const TSPtr<Verse::Vst::Project>& GetProjectVst() const { return _Toolchain->GetProjectVst(); }
77 {
78 return _Toolchain->SetProjectVst(NewProject);
79 }
80
81 UE_API void EnablePackageUsage(bool bEnable = true);
82
83private:
84 UE_API void OnBuildDiagnostic(const TSRef<SGlitch>& Diagnostic);
85 UE_API void OnBuildStatistic(const SBuildEventInfo& EventInfo);
86
87 TSRef<CToolchain> _Toolchain;
88 SProgramContext _ProgramContext;
89 TSRef<CSourceProject> _SourceProject;
90 TUPtr<SPackageUsage> _PackageUsage;
91 bool bEnablePackageUsage = false;
92};
93
94} // namespace uLang
95
96#undef UE_API
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
Definition ProgramBuildManager.h:48
UE_API void AddSourceSnippet(const TSRef< ISourceSnippet > &Snippet, const CUTF8StringView &PackageName, const CUTF8StringView &PackageVersePath)
Definition ProgramBuildManager.cpp:228
UE_API void RemoveSourceSnippet(const TSRef< ISourceSnippet > &Snippet)
Definition ProgramBuildManager.cpp:233
UE_API ECompilerResult ParseSnippet(const uLang::TSRef< Verse::Vst::Snippet > &OutVst, const CUTF8StringView &TextSnippet, const SBuildContext &BuildContext)
Definition ProgramBuildManager.cpp:194
UE_API void ResetSemanticProgram()
Definition ProgramBuildManager.cpp:243
const TSRef< CToolchain > & GetToolchain() const
Definition ProgramBuildManager.h:60
UE_API ECompilerResult AssembleProgram(const TSRef< CSemanticProgram > &Program, const SBuildContext &BuildContext)
Definition ProgramBuildManager.cpp:209
UE_API const CSourceProject::SPackage & FindOrAddSourcePackage(const CUTF8StringView &PackageName, const CUTF8StringView &PackageVersePath)
Definition ProgramBuildManager.cpp:238
const SProgramContext & GetProgramContext() const
Definition ProgramBuildManager.h:61
TArray< FSolLocalizationInfo > TakeStringInfo()
Definition ProgramBuildManager.h:65
UE_API SBuildResults BuildProject(const CSourceProject &SourceProject, const SBuildContext &BuildContext)
Definition ProgramBuildManager.cpp:189
void SetProjectVst(const TSRef< Verse::Vst::Project > &NewProject)
Definition ProgramBuildManager.h:76
const TSPtr< Verse::Vst::Project > & GetProjectVst() const
Definition ProgramBuildManager.h:75
UE_API void EnablePackageUsage(bool bEnable=true)
Definition ProgramBuildManager.cpp:248
UE_API ECompilerResult SemanticAnalyzeVst(TOptional< TSRef< CSemanticProgram > > &OutProgram, const TSRef< Verse::Vst::Project > &Vst, const SBuildContext &BuildContext)
Definition ProgramBuildManager.cpp:199
UE_API ECompilerResult IrGenerateProgram(const TSRef< CSemanticProgram > &Program, const SBuildContext &BuildContext)
Definition ProgramBuildManager.cpp:204
TArray< FSolLocalizationInfo > TakeLocalizationInfo()
Definition ProgramBuildManager.h:64
const TSRef< CSourceProject > & GetSourceProject() const
Definition ProgramBuildManager.h:62
const TUPtr< SPackageUsage > & GetPackageUsage() const
Definition ProgramBuildManager.h:63
UE_API ~CProgramBuildManager()
Definition ProgramBuildManager.cpp:219
UE_API void SetSourceProject(const TSRef< CSourceProject > &Project)
Definition ProgramBuildManager.cpp:223
Definition SharedPointer.h:28
Definition SourceProject.h:275
Definition UTF8StringView.h:15
Definition Array.h:51
Definition SharedPointer.h:77
Definition UniquePointer.h:15
Definition tLang.cpp:1785
Definition VVMEngineEnvironment.h:23
ECompilerResult
Definition Toolchain.h:95
ELinkerResult
Definition IAssemblerPass.h:11
Definition DetourTileCache.cpp:72
Definition VstNode.h:1000
Definition VstNode.h:885
Entry for a package contained in this project.
Definition SourceProject.h:280
Definition CompilerTypes.h:170
Definition Diagnostics.h:24
Definition ProgramBuildManager.h:37
TSPtr< CSemanticProgram > _ExistingProgram
Definition ProgramBuildManager.h:44
SToolchainOverrides _ToolchainOverrides
Definition ProgramBuildManager.h:41
Definition CompilerTypes.h:114
Definition Toolchain.h:125
Definition CompilerTypes.h:194
Definition ProgramBuildManager.h:19
TOptional< TSPtr< IParserPass > > Parser
Definition ProgramBuildManager.h:20
TOptional< TSRefArray< IIntraSemAnalysisInjection > > IntraSemAnalysisInjections
Definition ProgramBuildManager.h:30
TOptional< TSRefArray< IPostSemanticAnalysisFilter > > PostSemanticAnalysisFilters
Definition ProgramBuildManager.h:23
TOptional< TSPtr< ISemanticAnalyzerPass > > SemanticAnalyzer
Definition ProgramBuildManager.h:22
TOptional< TSRefArray< IPostVstFilter > > PostVstFilters
Definition ProgramBuildManager.h:21
TOptional< TSPtr< IAssemblerPass > > Assembler
Definition ProgramBuildManager.h:25
TOptional< TSRefArray< IPreTranslateInjection > > PreTranslateInjections
Definition ProgramBuildManager.h:32
TOptional< TSRefArray< IPostIrFilter > > PostIrFilters
Definition ProgramBuildManager.h:24
TOptional< TSRefArray< IPreSemAnalysisInjection > > PreSemAnalysisInjections
Definition ProgramBuildManager.h:29
TOptional< TSRefArray< IPreParseInjection > > PreParseInjections
Definition ProgramBuildManager.h:27
TOptional< TSRefArray< IPostSemAnalysisInjection > > PostSemAnalysisInjections
Definition ProgramBuildManager.h:31
TOptional< TSRefArray< IPreLinkInjection > > PreLinkInjections
Definition ProgramBuildManager.h:33
TOptional< TSRefArray< IPostParseInjection > > PostParseInjections
Definition ProgramBuildManager.h:28
Definition Optional.h:23