Files
UnrealEngine/Engine/Source/Runtime/BuildSettings/Public/BuildSettings.h
2025-05-18 13:04:45 +08:00

151 lines
5.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
namespace BuildSettings
{
/**
* Determines if the changelist version numbers are from a licensee Perforce server. For the same major/minor/patch release of the engine, licensee changelists are always
* considered newer than Epic changelists for engine versions. This follows the assumption that content is developed by Epic leading up to a release, and which
* point we lock compatibility, and any subsequent licensee modifications to the engine will have a superset of its functionality even if the changelist
* numbers are lower.
*
* @return Whether the changelist version numbers are from a licensee Perforce server
*/
BUILDSETTINGS_API bool IsLicenseeVersion();
/**
* The major engine version.
*
* @return The major part of the engine version
*/
BUILDSETTINGS_API int GetEngineVersionMajor();
/**
* The minor engine version.
*
* @return The minor part of the engine version
*/
BUILDSETTINGS_API int GetEngineVersionMinor();
/**
* The hotfix engine version.
*
* @return The hotfix patch part of the engine version
*/
BUILDSETTINGS_API int GetEngineVersionHotfix();
/**
* The engine version.
*
* @return The engine version as a string in the format MAJOR.MINOR.HOTFIX-BUILD_VERSION
*/
BUILDSETTINGS_API const TCHAR* GetEngineVersionString();
/**
* The Perforce changelist being compiled. Use this value advisedly; it does not take into account out-of-order commits to engine release branches over
* development branches, licensee versions, or whether the engine version has been locked to maintain compatibility with a previous engine release. Prefer
* BUILD_VERSION where a unique, product-specific identifier is required, or FEngineVersion::CompatibleWith() where relational comparisons between two
* versions is required.
*
* @return The changelist number being compiled
*/
BUILDSETTINGS_API int GetCurrentChangelist();
/**
* The compatible changelist version of the engine. This number identifies a particular API revision, and is used to determine module and package backwards
* compatibility. Hotfixes should retain the compatible version of the original release. This define is parsed by the build tools, and should be a number or
* BUILT_FROM_CHANGELIST, defined in this particular order for each alternative.
*
* @return The changelist number that this engine version is compatible with
*/
BUILDSETTINGS_API int GetCompatibleChangelist();
/**
* The branch that this program is being built from.
*
* @return Name of the current branch, with slashes escaped as '+' characters.
*/
BUILDSETTINGS_API const TCHAR* GetBranchName();
/**
* The date timestamp of this build. Derived from the compiler's __DATE__ macro, so only updated when the BuildSettings module is rebuilt (ie. whenever CL changes, etc...)
*
* @return String representing the build timestamp
*/
BUILDSETTINGS_API const TCHAR* GetBuildDate();
/**
* The time timestamp of this build. Derived from the compiler's __TIME__ macro, so only updated when the BuildSettings module is rebuilt (ie. whenever CL changes, etc...)
*
* @return String representing the build timestamp
*/
BUILDSETTINGS_API const TCHAR* GetBuildTime();
/**
* Retrieves the user-defined build version for this application.
*
* @return The current build version
*/
BUILDSETTINGS_API const TCHAR* GetBuildVersion();
/**
* Identifies whether this build is a promoted build; a formal build of the engine from a clean source sync.
*
* @return True if this is a promoted build of the engine.
*/
BUILDSETTINGS_API bool IsPromotedBuild();
/**
* Identifies whether this build was compiled with or without debug info. (e.g. pdb files on Microsoft platforms)
*/
BUILDSETTINGS_API bool IsWithDebugInfo();
/**
* Returns a URL where the job which created these binaries on an automation system (e.g. Horde) can be found, or an empty string.
*/
BUILDSETTINGS_API const TCHAR* GetBuildURL();
/**
* Returns the name of the user which created these binaries
*/
BUILDSETTINGS_API const TCHAR* GetBuildUser();
/**
* Returns the domain name of the user which created these binaries
*/
BUILDSETTINGS_API const TCHAR* GetBuildUserDomain();
/**
* Returns the name of the machine which created these binaries
*/
BUILDSETTINGS_API const TCHAR* GetBuildMachine();
/**
* Returns the live coding engine dir. Only set in monolithic builds (live coding engine dir is calculated differently in modular builds)
*/
BUILDSETTINGS_API const TCHAR* GetLiveCodingEngineDir();
/**
* Returns the live coding project. Only set in monolithic builds
*/
BUILDSETTINGS_API const TCHAR* GetLiveCodingProject();
/**
* Persistent linear allocator reserve size. Stored here to prevent rebuilds of Core when switching between projects
*/
BUILDSETTINGS_API uint64 GetPersistentAllocatorReserveSize();
/**
* Semicolon separated string containing virtual;local;virtual;local; paths. Ends with semicolon
*/
BUILDSETTINGS_API const char* GetVfsPaths();
/**
* Semicolon separated string containing virtual;local;virtual;local; paths. Ends with semicolon
*/
BUILDSETTINGS_API const TCHAR* GetVfsPathsWide();
}