UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SourceProjectWriter.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9#include "uLang/JSON/JSON.h"
10
11namespace uLang
12{
13
14// Specification of a package embedded in a project file
15// This mirrors FVersePackageDesc in the runtime
17{
19 CUTF8String _DirPath; // To be used for VSCode workspace. Also for compilation unless _FilePaths is specified.
20 TOptional<TArray<CUTF8String>> _FilePaths; // Optional array, so we can distinguish between absence of array vs absence of files
22};
23
24// A package as represented in a Verse project file
26{
27 TOptional<CUTF8String> _FilePath; // Path to the vpackage file
28 TOptional<SPackageDesc> _Desc; // Or, alternatively, directly embedded package desc
29 bool _ReadOnly = false;
30 bool _Build = true;
31};
32
33// The contents of a Verse project file
38
39// A root folder inside a VSCode workspace
46
47// A VSCode workspace
54
60{
61public:
62 enum class EWriteFlags
63 {
64 All,
66 };
67
72
81
86
91
96
101
102private:
103
107 bool WritePackage(const CSourcePackage& Package, const CUTF8String& DestinationDir, const EWriteFlags WriteFlags, SPackageDesc* OutPackageDesc = nullptr) const;
108
112 bool WriteSourceSnippet(const CSourceModule& Module, const TSRef<ISourceSnippet>& Snippet, const CUTF8String& ContainingDir) const;
113
117 bool WriteDigestSnippet(const TSRef<ISourceSnippet>& Snippet, const CUTF8String& ContainingDir, const CUTF8String& FlatPackageName) const;
118
119 bool WriteSnippetInternal(const TSRef<ISourceSnippet>& Snippet, const CUTF8String& Path) const;
120
124 template<class T>
125 bool WriteJSONFile(const T& Object, bool (*ToJSON)(const T& Value, JSONDocument* JSON), EDiagnostic SerializationError, const CUTF8String& DestinationPath) const;
126
127 TSRef<IFileSystem> _FileSystem;
128 TSRef<CDiagnostics> _Diagnostics;
129};
130
131}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
Definition SourceProject.h:59
Definition SourceProject.h:103
Definition SourceProjectWriter.h:60
CSourceProjectWriter(const TSRef< IFileSystem > &FileSystem, const TSRef< CDiagnostics > &Diagnostics)
Definition SourceProjectWriter.h:68
static VERSECOMPILER_API SProjectDesc GetProjectDesc(const CSourceProject &Project)
Definition SourceProjectWriter.cpp:368
VERSECOMPILER_API bool WriteProject(const CSourceProject &Project, const CUTF8String &DestinationDir, CUTF8String *ResultProjectFilePath=nullptr, const EWriteFlags WriteFlags=EWriteFlags::All) const
Definition SourceProjectWriter.cpp:301
VERSECOMPILER_API bool WriteVSCodeWorkspaceFile(const SWorkspaceDesc &WorkspaceDesc, const CUTF8String &WorkspaceFilePath) const
Definition SourceProjectWriter.cpp:363
static VERSECOMPILER_API SWorkspaceDesc GetWorkspaceDesc(const CSourceProject &Project, const CUTF8String &ProjectFilePath)
Definition SourceProjectWriter.cpp:398
EWriteFlags
Definition SourceProjectWriter.h:63
VERSECOMPILER_API bool WriteProjectFile(const SProjectDesc &ProjectDesc, const CUTF8String &ProjectFilePath) const
Definition SourceProjectWriter.cpp:358
Definition SourceProject.h:275
Definition UTF8StringView.h:15
Definition Array.h:51
Definition SharedPointer.h:77
Definition VVMEngineEnvironment.h:23
rapidjson::GenericDocument< rapidjson::UTF8< char >, JSONMemoryPoolAllocator, JSONAllocator > JSONDocument
Definition JSON.h:42
bool ToJSON(bool Value, JSONValue *JSON, JSONMemoryPoolAllocator &)
Definition JSON.h:211
EDiagnostic
Definition Glitch.h:310
Definition VstNode.h:924
Definition VstNode.h:940
Definition VstNode.h:1000
Definition VstNode.h:885
Definition SourceProject.h:108
Definition SourceProjectWriter.h:17
CUTF8String _DirPath
Definition SourceProjectWriter.h:19
CUTF8String _Name
Definition SourceProjectWriter.h:18
TOptional< TArray< CUTF8String > > _FilePaths
Definition SourceProjectWriter.h:20
CSourcePackage::SSettings _Settings
Definition SourceProjectWriter.h:21
Definition SourceProjectWriter.h:26
bool _ReadOnly
Definition SourceProjectWriter.h:29
bool _Build
Definition SourceProjectWriter.h:30
TOptional< SPackageDesc > _Desc
Definition SourceProjectWriter.h:28
TOptional< CUTF8String > _FilePath
Definition SourceProjectWriter.h:27
Definition SourceProjectWriter.h:35
TArray< SPackageRef > _Packages
Definition SourceProjectWriter.h:36
Definition SourceProjectWriter.h:49
TArray< SWorkspacePackageRef > _Folders
Definition SourceProjectWriter.h:50
CUTF8String _WorkspaceFilePath
Definition SourceProjectWriter.h:51
bool(* _AddSettingsFunc)(uLang::JSONDocument *, const CUTF8StringView &WorkspaceFilePath)
Definition SourceProjectWriter.h:52
Definition SourceProjectWriter.h:41
CUTF8String _Name
Definition SourceProjectWriter.h:42
CUTF8String _VersePath
Definition SourceProjectWriter.h:44
CUTF8String _DirPath
Definition SourceProjectWriter.h:43
Definition Optional.h:23