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();
 | |
| 
 | |
| };
 |