94 lines
3.4 KiB
C
94 lines
3.4 KiB
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
const FString BUILD_ACTION_BUILD = TEXT("Build");
|
|||
|
|
const FString BUILD_ACTION_CLEAN = TEXT("Clean");
|
|||
|
|
const FString BUILD_ACTION_GENERATE_PROJECT = TEXT("GenerateProject");
|
|||
|
|
const FString BUILD_ACTION_GENERATE_SOLUTION = TEXT("GenerateSolution");
|
|||
|
|
const FString BUILD_ACTION_REBUILD = TEXT("Rebuild");
|
|||
|
|
const FString BUILD_ACTION_WEAVE = TEXT("Weave");
|
|||
|
|
const FString BUILD_ACTION_BUILD_WEAVE = TEXT("BuildWeave");
|
|||
|
|
const FString BUILD_ACTION_PACKAGE_PROJECT = TEXT("PackageProject");
|
|||
|
|
|
|||
|
|
UENUM()
|
|||
|
|
enum class EDotNetBuildConfiguration : uint64
|
|||
|
|
{
|
|||
|
|
Debug,
|
|||
|
|
Release,
|
|||
|
|
Publish,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#define HOSTFXR_WINDOWS "hostfxr.dll"
|
|||
|
|
#define HOSTFXR_MAC "libhostfxr.dylib"
|
|||
|
|
#define HOSTFXR_LINUX "libhostfxr.so"
|
|||
|
|
#define DOTNET_MAJOR_VERSION "9.0.0"
|
|||
|
|
|
|||
|
|
class UNREALSHARPPROCHELPER_API FCSProcHelper final
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
|
|||
|
|
static bool InvokeCommand(const FString& ProgramPath, const FString& Arguments, int32& OutReturnCode, FString& Output, const FString* InWorkingDirectory = nullptr);
|
|||
|
|
static bool InvokeUnrealSharpBuildTool(const FString& BuildAction, const TMap<FString, FString>& AdditionalArguments = TMap<FString, FString>());
|
|||
|
|
|
|||
|
|
static FString GetRuntimeConfigPath();
|
|||
|
|
|
|||
|
|
static FString GetPluginAssembliesPath();
|
|||
|
|
|
|||
|
|
static FString GetUnrealSharpPluginsPath();
|
|||
|
|
|
|||
|
|
static FString GetUnrealSharpBuildToolPath();
|
|||
|
|
|
|||
|
|
// Path to the directory where we store the user's assembly after it has been processed by the weaver.
|
|||
|
|
static FString GetUserAssemblyDirectory();
|
|||
|
|
|
|||
|
|
// Path to file with UnrealSharp metadata
|
|||
|
|
static FString GetUnrealSharpMetadataPath();
|
|||
|
|
|
|||
|
|
// Gets the project names in the order they should be loaded.
|
|||
|
|
static void GetProjectNamesByLoadOrder(TArray<FString>& UserProjectNames, bool bIncludeGlue = false);
|
|||
|
|
|
|||
|
|
// Same as GetProjectNamesByLoadOrder, but returns the paths to the assemblies instead.
|
|||
|
|
static void GetAssemblyPathsByLoadOrder(TArray<FString>& AssemblyPaths, bool bIncludeGlue = false);
|
|||
|
|
|
|||
|
|
// Gets all the project paths in the /Scripts directory.
|
|||
|
|
static void GetAllProjectPaths(TArray<FString>& ProjectPaths, bool bIncludeProjectGlue = false);
|
|||
|
|
|
|||
|
|
// Checks if the project at this path can actually be reloaded. This is mainly used to skip of Roslyn analyzers since we don't want to reload them.
|
|||
|
|
static bool IsProjectReloadable(FStringView ProjectPath);
|
|||
|
|
|
|||
|
|
// Path to the .NET runtime root. Only really works in editor, since players don't have the .NET runtime.
|
|||
|
|
static FString GetDotNetDirectory();
|
|||
|
|
|
|||
|
|
// Path to the .NET executable. Only really works in editor, since players don't have the .NET runtime.
|
|||
|
|
static FString GetDotNetExecutablePath();
|
|||
|
|
|
|||
|
|
// Path to the UnrealSharp plugin directory.
|
|||
|
|
static FString& GetPluginDirectory();
|
|||
|
|
|
|||
|
|
// Path to the UnrealSharp bindings directory.
|
|||
|
|
static FString GetUnrealSharpDirectory();
|
|||
|
|
|
|||
|
|
// Path to the directory where we store classes we have generated from C# > C++.
|
|||
|
|
static FString GetGeneratedClassesDirectory();
|
|||
|
|
|
|||
|
|
// Path to the current project's script directory
|
|||
|
|
static const FString& GetScriptFolderDirectory();
|
|||
|
|
|
|||
|
|
static const FString& GetPluginsDirectory();
|
|||
|
|
|
|||
|
|
// Path to the current project's glue directory
|
|||
|
|
static const FString& GetProjectGlueFolderPath();
|
|||
|
|
|
|||
|
|
// Get the name of the current managed version of the project
|
|||
|
|
static FString GetUserManagedProjectName();
|
|||
|
|
|
|||
|
|
// Path to the latest installed hostfxr version
|
|||
|
|
static FString GetLatestHostFxrPath();
|
|||
|
|
|
|||
|
|
// Path to the runtime host. This is different in editor/builds.
|
|||
|
|
static FString GetRuntimeHostPath();
|
|||
|
|
|
|||
|
|
// Path to the C# solution file.
|
|||
|
|
static FString GetPathToSolution();
|
|||
|
|
|
|||
|
|
};
|