언리얼 빌드 툴(Unreal Build Tool, UBT)은 다음과 같은 여러 타깃 타입 빌드를 지원합니다.
게임(Game): 실행하려면 쿠킹된 데이터가 필요한 독립형 게임입니다.
클라이언트(Client): 게임과 동일하지만 서버 코드가 포함되어 있지 않습니다. 네트워크 게임에 유용합니다.
서버(Server): 게임과 동일하지만 클라이언트 코드가 포함되어 있지 않습니다. 네트워크 게임의 전용 서버에 유용합니다.
에디터(Editor): 언리얼 에디터를 확장하는 타깃입니다.
프로그램(Program): 언리얼 엔진 위에 빌드되는 독립형 유틸리티 프로그램입니다.
타깃은 확장자가 .target.cs인 C# 소스 파일을 통해 선언되며, 프로젝트의 루트 디렉터리에 저장됩니다. 각 .target.cs 파일은 TargetRules 베이스 클래스에서 파생된 클래스를 선언하고 생성자에서 어떻게 빌드되어야 하는지를 제어하는 프로퍼티를 설정합니다. 타깃을 빌드하라는 요청을 받으면 언리얼 빌드 툴은 target.cs 파일을 컴파일하고 파일 안에 클래스를 생성하여 세팅을 확인합니다.
클래스 이름은 선언된 파일의 이름과 일치해야 하며 뒤에 'Target'이 와야 합니다. 예를 들어 MyProject.target.cs는 클래스 MyProjectTarget을 정의합니다.
타깃 파일의 일반적인 구조는 다음과 같습니다.
using UnrealBuildTool;
using System.Collections.Generic;
public class MyProjectTarget : TargetRules
{
public MyProjectTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
// Other properties go here
}
}읽기 전용 프로퍼티
$ OriginalName (String): 오버라이드나 장식 없이 원래 타깃 이름을 반환합니다.
$ IsTestTarget (Boolean): 로우 레벨 테스트 타깃인지 여부입니다.
$ ExplicitTestsTarget (Boolean): 명시적으로 정의된 테스트 타깃인지 여부입니다. 명시적으로 정의된 테스트 타깃은 언제나 ‘TestTargetRules’로부터 상속하며 자체적으로 테스트를 정의합니다. 묵시적 테스트 타깃은 ‘-Mode=Test’로 빌드할 때 기존 타깃에서 생성되며 모든 종속성의 테스트를 포함합니다.
$ WithLowLevelTests (Boolean): 모듈별 로우 레벨 테스트가 컴파일되는지 여부를 나타내는 WITH_LOW_LEVEL_TESTS 값을 제어합니다.
$ Architecture (UnrealArch): 아키텍처에 단일 아키텍처가 있는 일반적인 경우에 아키텍처를 가져옵니다. 지정된 아키텍처가 두 개 이상인 경우 예외가 발생합니다.
$ bIWYU (Boolean): 이 타깃의 모듈에 기본적으로 'IWYU(include what you see)' 규칙을 활성화합니다. 이 프로젝트의 모든 모듈에 대한 디폴트 PCH 모드를 PCHUsageMode.UseExplicitOrSharedPCHs로 변경합니다.
$ DisableDebugInfoModules (HashSet<String>): 디버그 정보를 비활성화해야 하는 모듈입니다.
$ DisableDebugInfoPlugins (HashSet<String>): 디버그 정보를 비활성화해야 하는 플러그인입니다.
$ DebugInfoLineTablesOnlyModules (HashSet<String>): 해당 기능을 지원하는 컴파일러에 대해 전체 디버그 정보 대신 라인 번호 테이블을 내보내야 하는 모듈입니다. DisableDebugInfoModules를 오버라이드합니다.
$ DebugInfoLineTablesOnlyPlugins (HashSet<String>): 해당 기능을 지원하는 컴파일러에 대해 전체 디버그 정보 대신 라인 번호 테이블을 내보내야 하는 플러그인입니다. DisableDebugInfoPlugins를 오버라이드합니다.
$ MergePlugins (List<String>): 실험단계: 각각 별도의 라이브러리로 병합할 플러그인(및 해당 종속성)의 목록입니다. bMergeModules가 활성화되어 있어야 합니다.
$ MergePluginsShared (Dictionary<String, HashSet<String>>): 실험단계: 공통 종속성을 공유 라이브러리로 이동하기 위해 병합되는 플러그인 목록입니다. MergePlugins가 활성화되어 있어야 합니다. 체인으로 연결할 수 있습니다.
$ MergePluginsLaunch (List<String>): 실험단계: 메인 실행파일로 이동하기 위해 병합되는 플러그인 목록입니다. MergePlugins가 활성화되어 있어야 합니다. 'Engine'은 모든 공유 엔진 모듈을, 'Common'은 공유 프로젝트 모듈을 의미합니다.
$ GlobalDefinitions (List<String>): 전체 타깃에 걸쳐 전역적으로 정의할 매크로입니다.
$ ProjectDefinitions (List<String>): 프로젝트의 모든 매크로에 걸쳐 정의할 매크로입니다.
$ ExtraModuleNames (List<String>): 타깃에 컴파일할 추가 모듈 목록입니다.
$ ManifestFileNames (List<FileReference>): 이 타깃에 대해 출력할 매니페스트 경로입니다.
$ DependencyListFileNames (List<FileReference>): 사전 컴파일할 때 이 타깃에 대한 종속성 목록의 경로입니다.
$ PreBuildTargets (List<TargetInfo>): 이 타깃을 빌드하기 전에 빌드해야 하는 타깃의 목록을 지정합니다.
$ PreBuildSteps (List<String>): 호스트 플랫폼 셸의 컨텍스트에서 이 타깃을 빌드하기 전에 실행해야 하는 단계의 목록을 지정합니다. 다음 변수가 실행 전에 확장됩니다. $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).
$ PostBuildSteps (List<String>): 호스트 플랫폼 셸의 컨텍스트에서 이 타깃을 빌드한 후에 실행해야 하는 단계의 목록을 지정합니다. 다음 변수가 실행 전에 확장됩니다. $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).
$ AdditionalBuildProducts (List<String>): 이 타깃의 일부로 생성된 추가 빌드 제품을 지정합니다.
$ HostPlatform (UnrealTargetPlatform): 빌드 중인 호스트 플랫폼을 가져옵니다.
$ bGenerateProjectFiles (Boolean): bGenerateProjectFiles 플래그를 타깃에 노출하여 지능 개선을 위해 적절하게 행동을 수정할 수 있게 합니다.
$ bShouldTargetRulesTogglePlugins (Boolean): 타깃 규칙이 플러그인을 명시적으로 활성화 또는 비활성화하는 데 사용되는지 여부를 나타냅니다. 보통 레퍼런스된 플러그인을 빌드해야 하는지 여부를 프로젝트 파일에서 나타내는 경우가 아니면 프로젝트 생성에 필요하지 않습니다.
$ bIsEngineInstalled (Boolean): 엔진 설치 여부에 대한 세팅을 노출합니다.
읽기/쓰기 프로퍼티
$ BuildPlugins (List<String>): 이 타깃 타입에 대해 빌드되었지만 활성화되지 않은 추가 플러그인입니다.
$ AdditionalPlugins (List<String>): 이 타깃에 포함해야 하는 추가 플러그인 목록입니다. 비활성화할 수 없는 필수 플러그인 모듈을 참조하고 ModuleHostType의 카테고리에 맞지 않는 프로그램 타깃의 특정 모듈에 대해 빌드할 수 있습니다.
$ EnablePlugins (List<String>): 이 타깃에 대해 포함되어야 하는 추가 플러그인입니다.
$ DisablePlugins (List<String>): 이 타깃에 대해 비활성화되어야 하는 플러그인 목록입니다. 프로젝트 파일이 플러그인을 참조할 수도 있기 때문에 런타임 시 찾는 데 오류가 생기지 않도록 옵션으로 표시해야 합니다.
$ OptionalPlugins (List<String>): 발견되는 경우, 이 타깃에 포함되어야 하는 추가 플러그인입니다.
$ InternalPluginDependencies (List<String>): uplugin 디스크립터에서 정의되지 않고도 종속성으로 존재할 수 있는 플러그인 이름 목록입니다.
$ DisableMergingModuleAndGeneratedFilesInUnityFiles (String[]): 동일한 Unity 파일에서 모듈 및 생성된 cpp 파일 병합을 비활성화하는 모듈의 목록입니다.
$ bShowIncludes (Boolean): 각 소스 파일에 포함된 파일을 출력합니다.
$ DisableUnityBuildForModules (String[]): Unity 빌드를 비활성화할 모듈 목록입니다.
$ EnableOptimizeCodeForModules (String[]): 최적화를 활성화할 모듈 목록입니다.
$ DisableOptimizeCodeForModules (String[]): 최적화를 비활성화할 모듈 목록입니다.
$ OptimizeForSizeModules (String[]): 크기에 맞게 최적화할 모듈 목록입니다. 이를 통해 타깃이 모듈 최적화 레벨을 오버라이드할 수 있습니다. 프라이빗 PCH가 제공되지 않으면 PCH 사용이 비활성화될 수 있습니다.
$ OptimizeForSizeAndSpeedModules (String[]): 크기 및 속도에 맞게 최적화할 모듈 목록입니다. 이를 통해 타깃이 모듈 최적화 레벨을 오버라이드할 수 있습니다. 프라이빗 PCH가 제공되지 않으면 PCH 사용이 비활성화될 수 있습니다.
$ OptedInModulePlatforms (UnrealTargetPlatform[]): 이 값이 null이 아니면, 목록에 없는 플랫폼에서는 해당 디렉터리에 모듈을 생성할 수 없습니다.
$ Name (String): 이 타깃의 이름입니다.
$ Logger (ILogger): 이 타깃과 관련된 출력에 대한 로거입니다. 생성자가 실행되기 전에 설정합니다.
$ AdditionalData (Object): 사용자가 릴리스 후 새 프로퍼티를 추가하지 않고도 프로젝트의 TargetRule에 추가 데이터를 설정하고 프로젝트의 ModuleRule에 액세스할 수 있도록 하는 일반 nullable 오브젝트입니다. 예를 들어 다음과 같이 할 수 있습니다.
* .Target.cs에서: AdditionalData = "data";
* .Build.cs에서: if ((Target.AdditionalData as string) == "data") { ... }
$ Platform (UnrealTargetPlatform): 이 타깃이 빌드될 플랫폼입니다.
$ Configuration (UnrealTargetConfiguration): 빌드 중인 환경설정입니다.
$ Architectures (UnrealArchitectures): 타깃이 빌드될 아키텍처입니다. 지정하지 않으면 디폴트로 빈 스트링입니다.
$ IntermediateEnvironment (UnrealIntermediateEnvironment): 중간 환경입니다. 중간이 일반 폴더와 다른 폴더에 있는지 설정합니다.
$ ProjectFile (FileReference): 이 타깃을 포함하는 프로젝트의 프로젝트 파일 경로입니다.
$ Version (ReadOnlyBuildVersion): 현재 빌드 버전입니다.
$ Type (TargetType): 타깃의 타입입니다.
$ DefaultBuildSettings (BuildSettingsVersion): 하위 호환 디폴트 빌드 세팅을 유지할 엔진 버전을 지정합니다(예: DefaultSettingsVersion.Release_4_23, DefaultSettingsVersion.Release_4_24). 업그레이드 시 빌드 오류가 발생할 위험성이 있더라도 항상 현재 엔진 버전에 대한 디폴트를 사용하려면 DefaultSettingsVersion.Latest를 지정합니다.
$ ForcedIncludeOrder (Nullable<EngineIncludeOrderVersion>): 인클루드 순서를 특정 버전으로 강제합니다. 모든 타깃 및 모듈 규칙을 오버라이드합니다.
$ IncludeOrderVersion (EngineIncludeOrderVersion): 이 타깃을 컴파일할 때 사용할 인클루드 순서의 버전입니다. 명령줄에서 -ForceIncludeOrder를 통해 오버라이드할 수 있습니다. ModuleRules.IncludeOrderVersion이 우선합니다.
$ OutputFile (String): 메인 실행파일에 대한 출력 파일 경로로, 엔진 또는 프로젝트 디렉터리를 기준으로 합니다. 엔진은 다른 알려진 폴더(예: Content)를 찾기 위해 실행파일을 기준으로 경로를 사용하므로, 이 세팅은 보통 UE가 아닌 프로그램에서만 유용합니다.
$ bUsesSteam (Boolean): 타깃이 Steam을 사용하는지 여부입니다.
$ bUsesCEF3 (Boolean): 타깃이 CEF3을 사용하는지 여부입니다.
$ bUsesSlate (Boolean): 프로젝트가 비주얼 Slate UI를 사용하는지 여부입니다(항상 사용할 수 있는 로우 레벨 창/메시지와 반대).
$ bUseStaticCRT (Boolean): 스태틱 CRT에 대한 링크를 강제합니다. 할당자 구현(예)을 공유해야 하며 TPS 라이브러리가 상호 간에 일관되어야 해서 엔진 전체에서 완전히 지원되지는 않지만 유틸리티 프로그램에 사용할 수 있습니다.
$ bDebugBuildsActuallyUseDebugCRT (Boolean): 디버그 빌드를 위해 디버그 C++ 런타임(CRT)을 활성화합니다. 기본적으로 항상 릴리스 런타임을 사용합니다. 디버그 버전이 언리얼 엔진 프로젝트를 디버깅할 때 특별히 유용한 것은 아니고, 디버그 CRT 라이브러리에 대해 연결하면 서드파티 라이브러리 종속성이 디버그 CRT를 사용하여 컴파일하도록 강제하기 때문(그리고 종종 느리게 실행되기 때문)입니다. 단지 프로그램의 코드를 디버그하기 위해 서드파티 스태틱 라이브러리의 디버그 버전 사본이 별도로 필요하다는 점이 종종 불편할 수 있습니다.
$ bLegalToDistributeBinary (Boolean): 특별한 제한(예: CarefullyRedist, NotForLicensees, NoRedist)이 있는 폴더 안의 모듈에 대한 종속성이 있는 경우에도 이 타깃의 출력을 공개적으로 배포할 수 있는지 여부입니다.
$ UndecoratedConfiguration (UnrealTargetConfiguration): '-Platform-Configuration' 접미사가 필요하지 않은 바이너리의 환경설정을 지정합니다.
$ DecoratedSeparator (String): 바이너리 파일 이름에 사용할 구분자 문자를 지정합니다.
$ bAllowHotReload (Boolean): 이 타깃이 핫 리로드를 지원하는지 여부입니다.
$ bBuildAllModules (Boolean): 이 타깃 타입에 유효한 모든 모듈을 빌드합니다. CIS 및 설치된 엔진 빌드를 만드는 데 사용됩니다.
$ VSTestRunSettingsFile (FileReference): 생성된 프로젝트의 VSTest 실행 세팅 파일을 참조하기 위해 설정합니다.
$ bRuntimeDependenciesComeFromBuildPlugins (Boolean): true인 경우 EnablePlugins가 아닌 BuildPlugins 목록을 사용하여 RuntimeDependencies를 채웁니다.
$ bAllowEnginePluginsEnabledByDefault (Boolean): false이면 프로젝트 또는 타깃 파일에서 명시적으로 활성화되지 않은 '디폴트로 활성화된' 엔진 플러그인의 로딩을 억제합니다.
$ DisablePluginsConflictWarningLevel (WarningLevel): 비활성화된 플러그인이 이를 레퍼런스하는 다른 플러그인에 의해 활성화될 때 충돌을 처리하는 방식입니다.
$ PakSigningKeysFile (String): 실행파일에 임베드할 PAK 서명 키 세트 경로입니다.
$ SolutionDirectory (String): 프로그램 타깃이 솔루션 폴더 경로를 지정할 수 있도록 합니다.
$ bGenerateProgramProject (Boolean): 프로젝트 파일 생성을 위해 타깃을 프로그램으로 취급하도록 강제합니다.
$ bExplicitTargetForType (Boolean): true이면 GetTargetNameByType은 이 타깃을 고려하지 않으므로 -TargetType=X가 명확해집니다.
$ bBuildInSolutionByDefault (Nullable<Boolean>): 타깃이 디폴트 솔루션 빌드 환경설정에 포함되어야 하는지 여부입니다. false로 설정하면 IDE에서 실행할 때 빌드를 건너뜁니다.
$ bShouldCompileAsDLL (Boolean): 타깃이 다이내믹 링크 라이브러리(Dynamic-Link Library, DLL)로 컴파일되어야 하는지 여부입니다. LinkType을 TargetLinkType.Monolithic으로 설정해야 합니다.
$ CustomConfig (String): 환경설정 파일을 로드할 수 있는 여분의 서브디렉터리입니다. 동일한 플랫폼으로 여러 빌드 타입을 만드는 데 사용됩니다. 이는 게임 실행파일에 CUSTOM_CONFIG로 구워지며, 파일 및 세팅 필터링을 위한 스테이징 시 사용됩니다.
$ ExeBinariesSubFolder (String): 디폴트 위치를 기준으로 실행파일을 배치할 서브폴더입니다.
$ GeneratedCodeVersion (EGeneratedCodeVersion): 타깃 모듈이 언리얼 헤더 툴(Unreal Header Tool, UHT) 코드 생성 버전을 오버라이드할 수 있도록 합니다.
$ bEnableMeshEditor (Boolean): 메시 에디터 활성화 여부입니다.
$ bUseVerseBPVM (Boolean): BPVM을 사용하여 Verse를 실행할지 여부입니다.
$ bUseAutoRTFMCompiler (Boolean): AutoRTFM Clang 컴파일러 사용 여부입니다.
$ bForceNoAutoRTFMCompiler (Boolean): AutoRTFM Clang 컴파일러 강제 비활성화를 사용할지 여부입니다.
$ bUseAutoRTFMVerifier (Boolean): AutoRTFM 검증 메타데이터 방출 활성화 여부입니다.
$ bCompileChaos (Boolean): 카오스 피직스 플러그인 컴파일 여부입니다.
$ bUseChaos (Boolean): 카오스 피직스 인터페이스 사용 여부입니다. PhysX 플래그를 오버라이드하여 APEX 및 NvCloth를 비활성화합니다.
$ bUseChaosChecked (Boolean): 디버깅을 위해 체크한 카오스 피처를 컴파일할지 여부입니다.
$ bUseChaosMemoryTracking (Boolean): 카오스 메모리 추적 기능을 컴파일할지 여부입니다.
$ bCompileChaosVisualDebuggerSupport (Boolean): 피직스 시뮬레이션 상태를 기록하기 위해 CVD(Chaos Visual Debugger) 지원 기능을 컴파일할지 여부입니다.
$ bCustomSceneQueryStructure (Boolean): 씬 쿼리 가속을 UE에서 수행할지 여부입니다. PhysX 씬 쿼리 구조는 생성되지만 사용하지 않습니다.
$ bCompilePhysX (Boolean): PhysX 지원을 포함할지 여부입니다.
$ bCompileAPEX (Boolean): PhysX APEX 지원을 포함할지 여부입니다.
$ bCompileNvCloth (Boolean): NvCloth를 포함할지 여부입니다.
$ bCompileICU (Boolean): 코어에 ICU 유니코드/i18n 지원을 포함할지 여부입니다.
$ bCompileCEF3 (Boolean): CEF3 지원을 컴파일할지 여부입니다.
$ bCompileISPC (Boolean): ISPC를 사용하여 컴파일할지 여부입니다.
$ bCompileIntelMetricsDiscovery (Boolean): IntelMetricsDiscovery를 컴파일할지 여부입니다.
$ bCompilePython (Boolean): Python 지원을 컴파일할지 여부입니다
$ bUseGameplayDebugger (Boolean): WITH_GAMEPLAY_DEBUGGER를 활성화하여 엔진의 모든 디폴트 게임플레이 디버거 카테고리를 포함하여 컴파일할지 여부입니다.
$ bUseGameplayDebuggerCore (Boolean): bUseGameplayDebugger가 false이지만 GameplayDebugger의 핵심 부분이 필요한 경우 true로 설정합니다.
$ bCompileIoStoreOnDemand (Boolean): I/O 스토어를 온디맨드 방식으로 사용할지 여부입니다.
$ bUseIris (Boolean): 아이리스를 사용할지 여부입니다.
$ bTrackRHIResourceInfoForTest (Boolean): 테스트 환경설정을 위해 RHI 리소스의 오너(에셋 이름)를 추적할지 여부입니다. ListShaderMaps 및 ListShaderLibraries 명령에 유용합니다.
$ bBuildEditor (Boolean): 에디터 코드 컴파일 여부입니다. 더 명시적인 bCompileAgainstEditor 를 선호합니다.
$ bBuildRequiresCookedData (Boolean): 에셋 빌드와 관련된 코드를 컴파일할지 여부입니다. 콘솔은 일반적으로 에셋을 빌드하지 못합니다. 데스크톱 플랫폼은 일반적으로 가능합니다.
$ bBuildWithEditorOnlyData (Boolean): WITH_EDITORONLY_DATA를 비활성화하고 컴파일할지 여부입니다. Windows에서만 사용하며, 다른 플랫폼에서는 강제로 false가 됩니다.
$ bBuildDeveloperTools (Boolean): 개발자 툴을 컴파일할지 여부입니다.
$ bBuildTargetDeveloperTools (Boolean): 개발자 툴 컴파일 시 타깃 플랫폼용인지 또는 연결된 디바이스용인지를 지정합니다(bBuildDeveloperTools로 디폴트 설정됩니다).
$ bForceBuildTargetPlatforms (Boolean): 보통은 빌드되지 않는 경우에도 타깃 플랫폼 모듈을 강제로 컴파일할지 여부입니다.
$ bForceBuildShaderFormats (Boolean): 보통은 빌드되지 않는 경우에도 셰이더 포맷 모듈을 강제로 컴파일할지 여부입니다.
$ bNeedsExtraShaderFormatsOverride (Nullable<Boolean>): 추가 셰이더 포맷을 포함하기 위한 오버라이드입니다.
$ bNeedsExtraShaderFormats (Boolean): 추가 셰이더 포맷을 포함할지 여부입니다. 기본적으로 프로그램 및 에디터 타깃에 대해서만 활성화됩니다.
$ bCompileCustomSQLitePlatform (Boolean): SQLite를 컴파일하는 데 커스텀 '언리얼' 플랫폼(true)을 사용할지, 네이티브 플랫폼(false)을 사용할지 여부입니다.
$ bUseCacheFreedOSAllocs (Boolean): MallocBinned를 사용하여 캐시 프리 OS 할당을 활용할지 여부입니다.
$ bCompileAgainstEngine (Boolean): 엔진 프로젝트를 포함하는 모든 빌드에 대해 활성화됩니다. 코어와 연결만 하는 독립형 앱을 빌드하는 경우에만 비활성화됩니다.
$ bCompileAgainstCoreUObject (Boolean): CoreUObject 프로젝트를 포함하는 모든 빌드에 대해 활성화됩니다. 코어와 연결만 하는 독립형 앱을 빌드하는 경우에만 비활성화됩니다.
$ bCompileAgainstApplicationCore (Boolean): ApplicationCore 모듈을 초기화해야 하는 빌드에 대해 활성화됩니다. 보통 명령줄 유틸리티에는 이 프로퍼티가 필요하지 않습니다.
$ bEnableTrace (Boolean): 프로파일링 및 진단을 위해 트레이스 모듈을 사용하려는 빌드에서 활성화합니다.
$ bForceEnableTrace (Boolean): 트레이싱을 강제로 활성화합니다. 테스트 프로그램에서 트레이싱이 의도한 대로 작동하는지 검증할 수 있게 하는 데 사용됩니다.
$ bCompileAgainstEditor (Boolean): 에디터 빌드(TargetType.Editor)에 대해 활성화됩니다. 에디터 코드에 대하여 컴파일해야 하는 프로그램(TargetType.Program)에 대해 오버라이드할 수 있습니다. 다른 타깃 타입에 대해서는 사용할 수 없습니다. 주로 WITH_EDITOR 값을 구동합니다.
$ bCompileRecast (Boolean): 리캐스트 내비메시 생성을 컴파일할지 여부입니다.
$ bCompileNavmeshSegmentLinks (Boolean): 내비메시 세그먼트 링크를 포함하여 컴파일할지 여부입니다.
$ bCompileNavmeshClusterLinks (Boolean): 내비메시 클러스터 링크를 포함하여 컴파일할지 여부입니다.
$ bCompileSpeedTree (Boolean): SpeedTree를 지원하도록 컴파일해야 하는지 여부입니다.
$ bForceEnableExceptions (Boolean): 모든 모듈에서 예외를 활성화합니다.
$ bUseInlining (Boolean): 모든 모듈에서 인라이닝을 활성화합니다.
$ bForceEnableObjCExceptions (Boolean): 모든 모듈에서 예외를 활성화합니다.
$ bForceEnableRTTI (Boolean): 모든 모듈에서 RTTI를 활성화합니다.
$ bEnablePrivateBuildInformation (Boolean): BuildSettings에 빌드에 대한 개인정보를 포함하도록 활성화합니다. 개인정보에는 머신 이름, 사용자명, 사용자 도메인 이름(BuildSettings.h에 노출됨) 등이 있습니다.
$ bEnablePIE (Boolean): PIE(Position Independent Executable)를 활성화합니다. 오버헤드 비용이 있습니다.
$ bEnableStackProtection (Boolean): 스택 보호를 활성화합니다. 오버헤드 비용이 있습니다.
$ bWithClientCode (Boolean): 클라이언트 전용 코드를 컴파일합니다.
$ bWithServerCode (Boolean): 서버 전용 코드를 컴파일합니다.
$ bFNameOutlineNumber (Boolean): 이름 테이블에서 숫자 부분을 저장하는 FName으로 컴파일합니다. 대부분의 이름에 번호가 매겨지지 않을 때와 여러 번 참조되는 이름에 메모리가 절약됩니다. 게임과 엔진은 메모리 누수를 피하기 위해 이름 스트링과 유사하게 번호가 매겨진 이름을 반드시 재사용해야 합니다.
$ bWithPushModel (Boolean): 활성화하면 푸시 모델 네트워킹을 지원하도록 컴파일됩니다. 이는 네트워킹의 CPU 오버헤드를 줄이는 데 도움이 되지만 메모리가 더 소모될 수 있습니다. 에디터 빌드에서는 항상 활성화됩니다.
$ bCompileWithStatsWithoutEngine (Boolean): 엔진이 없어도 통계 지원을 포함할지 여부입니다.
$ bCompileWithPluginSupport (Boolean): 플러그인 지원을 포함할지 여부입니다.
$ bIncludePluginsForTargetPlatforms (Boolean): 모든 타깃 플랫폼을 지원하는 플러그인을 허용할지 여부입니다.
$ bCompileWithAccessibilitySupport (Boolean): Slate와 OS 레이어 모두에서 접근성 코드를 허용할지 여부입니다.
$ bWithPerfCounters (Boolean): PerfCounters 지원을 포함할지 여부입니다.
$ bWithLiveCoding (Boolean): 라이브 코딩 지원을 활성화할지 여부입니다.
$ bUseDebugLiveCodingConsole (Boolean): 라이브 코딩 지원을 활성화할지 여부입니다
$ bWithDirectXMath (Boolean): DirectX Math 지원을 활성화할지 여부입니다. LWC_TODO: 더는 지원되지 않습니다. 제거해야 합니다.
$ bWithFixedTimeStepSupport (Boolean): 엔진에서 FixedTimeStep 지원을 활성화할지 여부입니다.
$ bUseLoggingInShipping (Boolean): 테스트/출시 빌드의 로깅을 켤지 여부입니다.
$ bUseConsoleInShipping (Boolean): 출시 빌드에서 콘솔을 켤지 여부입니다.
$ bLoggingToMemoryEnabled (Boolean): 테스트/출시 빌드의 메모리 로깅을 켤지 여부입니다.
$ bUseLauncherChecks (Boolean): 프로세스가 외부 런처를 통해 실행되었는지 확인할지 여부입니다.
$ bUseChecksInShipping (Boolean): 테스트/출시 빌드 확인(어서트)을 켤지 여부입니다.
$ bAllowProfileGPUInTest (Boolean): 테스트 빌드의 GPU 마커를 켤지 여부입니다.
$ bAllowProfileGPUInShipping (Boolean): 출시 빌드의 GPU 마커를 켤지 여부입니다.
$ bTCHARIsUTF8 (Boolean): UTF-8 모드를 켤지 여부입니다(TCHAR를 UTF8CHAR에 매핑).
$ bUseEstimatedUtcNow (Boolean): EstimatedUtcNow를 사용할지, PlatformUtcNow를 사용할지 여부입니다. EstimatedUtcNow는 PlatformUtcNow가 느릴 수 있는 경우에 적합합니다.
$ bCompileFreeType (Boolean): FreeType 지원이 필요한 경우 true입니다.
$ bUseExecCommandsInShipping (Boolean): 출시 빌드에 exec 명령 허용을 켤지 여부입니다.
$ bCompileForSize (Boolean): 속도보다 크기를 최적화하는 경우 true입니다.
$ OptimizationLevel (OptimizationMode): 속도 및/또는 코드 크기에 대한 최적화 레벨의 미세 조정을 허용할지 여부입니다.
$ FPSemantics (FPSemanticsMode): FP 시맨틱에 대한 세팅 허용합니다.
$ bForceCompileDevelopmentAutomationTests (Boolean): 개발 자동화 테스트를 컴파일할지 여부입니다.
$ bForceCompilePerformanceAutomationTests (Boolean): 퍼포먼스 자동화 테스트를 컴파일할지 여부입니다.
$ bForceDisableAutomationTests (Boolean): 자동화 테스트를 위해 디폴트를 오버라이드할지 여부입니다(디버그/개발 환경설정).
$ bEventDrivenLoader (Boolean): true일 경우 쿠킹된 빌드에서 이벤트 기반 로더가 사용됩니다. @Todoio 리팩터 비동기 로딩 후 런타임 솔루션으로 대체해야 합니다.
$ NativePointerMemberBehaviorOverride (Nullable<PointerMemberBehavior>): UCLASS와 USTRUCT가 네이티브 포인터 멤버를 갖도록 허용되는지 여부를 제어하는 행동을 오버라이드합니다. 허용되지 않는 경우 UHT 오류가 되며 TObjectPtr 멤버로 대체되어야 합니다.
$ bUseXGEController (Boolean): XGE 컨트롤러 작업자 및 모듈이 엔진 빌드에 포함되어야 하는지 여부입니다. XGE 인터셉션 인터페이스를 사용하는 분산 셰이더 컴파일에 필요합니다.
$ bIncludeHeaders (Boolean): 포함된 모듈의 헤더 파일을 빌드에 추가합니다.
$ bHeadersOnly (Boolean): -IncludeHeaders와 함께 사용하면 헤더 파일만 컴파일됩니다.
$ bEnforceIWYU (Boolean): 'IWYU(include what you see)' 규칙을 적용합니다. 모놀리식 헤더(Engine.h, UnrealEd.h 등)가 사용될 경우 경고하고 먼저 소스 파일에 일치하는 헤더가 포함되어 있는지 확인합니다.
$ bWarnAboutMonolithicHeadersIncluded (Boolean): 이 타깃을 컴파일하는 동안 이전 스타일의 모놀리식 헤더가 포함되면 경고를 내보냅니다.
$ bHasExports (Boolean): 최종 실행파일에서 심볼을 내보낼지 여부입니다.
$ bPrecompile (Boolean): 이 타깃에 대해 모든 엔진 모듈의 스태틱 라이브러리를 중간 과정으로 만듭니다.
$ bEnableOSX109Support (Boolean): OS X 10.9 Mavericks를 지원하도록 컴파일해야 하는지 여부입니다. 이 OS X 버전과 호환되어야 하는 일부 툴에 사용됩니다.
$ bIsBuildingConsoleApplication (Boolean): 콘솔 애플리케이션을 빌드 중인 경우 true입니다.
$ bBuildAdditionalConsoleApp (Boolean): true인 경우 추가 콘솔 애플리케이션을 생성합니다. Windows를 위한 팁: 애플리케이션이 호출된 방식에 따라 부모의 콘솔 창을 조건부로 상속할 수 없다면, 동일한 실행 파일을 다른 서브시스템 세팅으로 링크해야 합니다.
$ bBuildConsoleAppOnly (Boolean): true인 경우 추가 콘솔 애플리케이션만 생성합니다. bBuildAdditionalConsoleApp을 오버라이드합니다.
$ bDisableSymbolCache (Boolean): 일부 플랫폼에 대해 캐시된 디버그 심볼이 생성되지 않아야 하는 경우 true입니다.
$ bUseUnityBuild (Boolean): 빠른 컴파일을 위해 C++ 코드를 더 큰 파일로 통일할지 여부입니다.
$ bForceUnityBuild (Boolean): 빠른 컴파일을 위해 C++ 소스 파일을 강제로 더 큰 파일로 결합할지 여부입니다.
$ bMergeModuleAndGeneratedUnityFiles (Boolean): 빠른 컴파일을 위해 모듈 및 생성된 Unity 파일을 병합할지 여부입니다.
$ bUseAdaptiveUnityBuild (Boolean): 휴리스틱 기법을 사용하여 현재 반복작업 중인 파일을 확인하고 Unity 블롭에서 제외하여 증분 컴파일 속도를 높입니다. 현재 구현에서는 파일이 수정된 경우 소스 컨트롤 시스템을 통해 파일이 쓰기 가능하게 된다고 가정하고 읽기 전용 플래그를 사용하여 작업 세트를 구분합니다. 퍼포스(Perforce)의 경우 True이지만 Git의 경우에는 그렇지 않습니다.
$ bAdaptiveUnityDisablesOptimizations (Boolean): 적응형 비Unity 작업 세트에 있는 파일에 대해 최적화를 비활성화합니다.
$ bAdaptiveUnityDisablesPCH (Boolean): 적응형 비Unity 작업 세트에 있는 파일에 대해 강제 포함 PCH를 비활성화합니다.
$ bAdaptiveUnityDisablesProjectPCHForProjectPrivate (Nullable<Boolean>): bAdaptiveUnityDisablesProjectPCH에 대한 지원 스토리지입니다.
$ bAdaptiveUnityDisablesPCHForProject (Boolean): 적응형 비Unity 작업 세트에서 프로젝트 소스 파일에 강제 포함된 PCH를 비활성화할지 여부입니다. bAdaptiveUnityDisablesPCH로 디폴트 설정됩니다.
$ bAdaptiveUnityCreatesDedicatedPCH (Boolean): 작업 세트의 각 소스 파일에 대한 전용 PCH를 만들어 cpp 전용 변경사항을 더 빠르게 반복작업할 수 있게 합니다.
$ bAdaptiveUnityEnablesEditAndContinue (Boolean): 작업 세트의 각 소스 파일에 대한 전용 PCH를 만들어 cpp 전용 변경사항을 더 빠르게 반복작업할 수 있게 합니다.
$ bAdaptiveUnityCompilesHeaderFiles (Boolean): 작업 세트의 각 헤더 파일에 대한 전용 소스 파일을 만들어 헤더에서 누락된 인클루드를 탐지합니다.
$ MinGameModuleSourceFilesForUnityBuild (Int32): 해당 모듈에 대해 Unity 빌드가 활성화되기 위해 게임에 필요한 소스 파일 수입니다. 이를 통해 전체 리빌드 타임이 느려지는 대신 작은 게임 모듈의 단일 파일에 대한 반복 컴파일 타임이 빨라집니다. 이 세팅은 모듈의 Build.cs 파일에 있는 bFasterWithoutUnity 옵션으로 오버라이드될 수 있습니다.
$ DefaultWarningLevel (WarningLevel): 분류되지 않은 경고의 디폴트 처리 방식입니다.
$ bRequireObjectPtrForAddReferencedObjects (Boolean): FReferenceCollector API 사용 시 TObjectPtr을 요구합니다. 점진적 GC와의 호환성을 위해 필요합니다.
$ bValidateFormatStrings (Boolean): 잘못된 UE_LOG 포맷 스트링에 대한 컴파일 오류를 내보냅니다.
$ DeprecationWarningLevel (WarningLevel): 지원 중단 경고를 오류로 보고할 레벨입니다.
$ ShadowVariableWarningLevel (WarningLevel): 지원하는 플랫폼에서 섀도 변수 경고를 오류로 강제 처리합니다.
$ bWarningsAsErrors (Boolean): 모든 경고를 오류로 활성화할지 여부입니다. UE는 원래 대부분의 경고를 오류로 활성화하지만, 지원 중단 경고와 같은 일부 경고는 비활성화합니다.
$ UnsafeTypeCastWarningLevel (WarningLevel): 지원하는 플랫폼에서 어떤 경고/오류 레벨을 안전하지 않은 타입 캐스트로 취급할지 나타냅니다(예: double->float 또는 int64->int32).
$ bUndefinedIdentifierErrors (Boolean): 조건부 표현식에서 정의되지 않은 식별자를 사용하면 오류로 강제 처리합니다.
$ UndefinedIdentifierWarningLevel (WarningLevel): 조건부 표현식에서 정의되지 않은 식별자를 어떤 경고/오류 레벨로 취급할지 나타냅니다.
$ PCHPerformanceIssueWarningLevel (WarningLevel): 잠재적 PCH 퍼포먼스 문제를 어떤 경고/오류 레벨로 취급할지 나타냅니다.
$ ModuleIncludePathWarningLevel (WarningLevel): 일반 모듈 인클루드 경로 유효성 검사 메시지를 처리하는 방식입니다.
$ ModuleIncludePrivateWarningLevel (WarningLevel): 프라이빗 모듈 인클루드 경로 유효성 검사 메시지를 처리하는 방식이며, 여기서 모듈은 프라이빗 헤더를 노출하는 인클루드 경로를 추가합니다.
$ ModuleIncludeSubdirectoryWarningLevel (WarningLevel): 불필요 모듈 서브디렉터리 인클루드 경로 유효성 검사 메시지를 처리하는 방식입니다.
$ bRetainFramePointers (Boolean): 프레임 포인터가 유지되도록 강제합니다. 보통 다음과 같은 안정적인 콜스택을 원하는 경우 필요합니다. 안정적인 콜스택을 원하는 경우 필요합니다.
$ bRetainFramePointersOverride (Nullable<Boolean>): 프레임 포인터가 유지되도록 강제합니다. 보통 mallocframeprofiler 등의 안정적인 콜스택을 원하는 경우 필요합니다.
$ bUseFastMonoCalls (Boolean): 새로운 모놀리식 그래픽 드라이버에는 다양한 D3D 함수를 대체하는 '빠른 호출' 옵션이 있습니다.
$ NumIncludedBytesPerUnityCPP (Int32): 단일 통합 C++ 파일에 포함하기 위해 타기팅할 C++ 코드의 대략적인 바이트 수입니다.
$ bDisableModuleNumIncludedBytesPerUnityCPPOverride (Boolean): 모듈에 의해 설정된 오버라이드를 비활성화합니다.
$ bStressTestUnity (Boolean): 단일 통합 파일의 프로젝트에 모든 C++ 파일을 포함하여 C++ Unity 빌드 견고성을 집중 테스트할지 여부입니다.
$ bDetailedUnityFiles (Boolean): 파일 이름에 '_of_X'를 넣는 등, Unity 파일에 추가 정보를 추가할지 여부입니다. 권장하지 않습니다.
$ bForceDebugInfo (Boolean): 디버그 정보를 강제 생성할지 여부입니다.
$ bDisableDebugInfo (Boolean): 전역적으로 디버그 정보 생성을 비활성화할지 여부입니다. 구버전이므로, TargetRules.DebugInfoMode를 대신 사용해 주세요.
$ DebugInfo (DebugInfoMode): 생성할 디버그 정보의 양입니다. 자세한 내용은 DebugInfoMode 열거형을 참조하세요.
$ DebugInfoLineTablesOnly (DebugInfoMode): 해당 기능을 지원하는 컴파일러의 디버그 정보에 디버그 라인 번호 테이블만 출력해야 하는 경우 true로 설정합니다. TargetRules.DebugInfo를 오버라이드합니다. 자세한 내용은 https://clang.llvm.org/docs/UsersManual.html#cmdoption-gline-tables-only를 참조하세요.
$ bDisableDebugInfoForGeneratedCode (Boolean): 생성된 파일에 대한 디버그 정보 생성을 비활성화할지 여부입니다. 비활성화하면 글루 코드가 많이 생성된 모듈의 링크 타임이 개선되며 pdb 크기가 감소합니다.
$ bOmitPCDebugInfoInDevelopment (Boolean): 개발 빌드에서 PC/Mac에 대한 디버그 정보를 비활성화할지 여부입니다. 디버그 정보를 비활성화하면 링크 타임이 매우 빨라지므로 개발자 반복작업의 속도를 높일 수 있습니다.
$ bUsePDBFiles (Boolean): PDB 파일을 Visual C++ 빌드에 사용해야 하는지 여부입니다.
$ bUsePCHFiles (Boolean): PCH 파일을 사용해야 하는지 여부입니다.
$ bDeterministic (Boolean): 결정론적 컴파일 및 링크에 필요한 플래그를 설정합니다. msvc에 대해 결정론적 모드를 활성화하면 코드 생성(codegen) 멀티스레딩이 비활성화되므로 컴파일 속도가 느려집니다.
$ bChainPCHs (Boolean): clang으로 컴파일할 때 PCH를 연결해야 하는지 여부입니다.
$ bForceIncludePCHHeadersForGenCppFilesWhenPCHIsDisabled (Boolean): PCH가 비활성화된 경우 gen.cpp 파일에 PCH 헤더를 강제로 포함해야 하는지 여부입니다.
$ bPreprocessOnly (Boolean): 이 타깃의 소스 파일을 프리프로세스하고 컴파일을 건너뛸지 여부입니다.
$ bPreprocessDepends (Boolean): 프리프로세싱을 통해 종속성 파일을 생성합니다. 오버헤드가 늘어나기 때문에 빌드 배포 시에만 권장됩니다.
$ bWithAssembly (Boolean): 이 타깃을 컴파일하는 동안 어셈블리 데이터를 생성할지 여부입니다. 현재 MSVC에서만 작동합니다.
$ bAllowUbaCompression (Boolean): 실험단계: 디스크에 오브젝트(.obj)를 압축하여 저장합니다. UBA를 연결해야 하며, 현재는 MSVC만 지원됩니다. 이 플래그를 토글하면 MSVC 액션이 무효화됩니다. 경고: 이 옵션은 현재 PGO 또는 cl-clang 링커와 호환되지 않습니다. 이 경우 우회되지 않아 링크에 실패합니다.
$ StaticAnalyzer (StaticAnalyzer): 스태틱 코드 분석을 활성화할지 여부입니다.
$ StaticAnalyzerOutputType (StaticAnalyzerOutputType): 스태틱 분석 툴에 사용할 출력 타입입니다. Clang에서만 지원됩니다.
$ StaticAnalyzerMode (StaticAnalyzerMode): 스태틱 분석 툴에 사용할 모드입니다. Clang에서만 지원됩니다. 얕은 모드로 설정하면 더 빨리 완료되지만 일반적으로 권장되지 않습니다.
$ StaticAnalyzerPVSPrintLevel (Int32): PVS-Studio를 사용하여 분석할 때 출력할 경고 레벨입니다.
$ bStaticAnalyzerProjectOnly (Boolean): 엔진 모듈은 건너뛰고 프로젝트 모듈에 대해서만 스태틱 분석을 실행합니다.
$ bStaticAnalyzerIncludeGenerated (Boolean): 활성화하면 생성된 소스 파일이 분석됩니다.
$ MinFilesUsingPrecompiledHeader (Int32): 사전 컴파일된 헤더를 생성하고 사용하기 위해 필요한 최소 파일 수입니다.
$ bForcePrecompiledHeaderForGameModules (Boolean): 활성화하면 게임 모듈에 소스 파일 수가 적은 경우에도 항상 모듈에 사전 컴파일된 헤더가 생성됩니다. 이렇게 하면 소규모 게임 프로젝트의 전체 리빌드 타임이 느려지는 대신 프로젝트에서 일부 파일에 대한 반복 변경의 컴파일 타임이 크게 개선됩니다. 모듈의 Build.cs 파일에 MinFilesUsingPrecompiledHeaderOverride를 세팅하여 오버라이드할 수 있습니다.
$ bUseIncrementalLinking (Boolean): 증분 링크를 사용할지 여부입니다. 증분 링크를 사용하면 작은 변경 사항이 있을 때 반복작업 시간이 빨라집니다. 일부 컴퓨터에서 버그가 있어(PDB 관련 컴파일 오류) 현재는 기본적으로 비활성화되어 있습니다.
$ bAllowLTCG (Boolean): LTCG(링크 타임 코드 생성) 사용을 허용할지 여부입니다.
$ bPreferThinLTO (Boolean): LTCG(링크 타임 코드 생성)가 활성화되었을 때 지원되는 플랫폼에서 더 가벼운 버전 사용을 선호할지 여부입니다.
$ ThinLTOCacheDirectory (String): 지원되는 플랫폼에서 ThinLTO 캐시를 배치할 디렉터리입니다.
$ ThinLTOCachePruningArguments (String): 지원되는 플랫폼에서 ThinLTO 캐시를 정리하기 위해 적용할 실행인자입니다. 실행인자는 ThinLTOCacheDirectory가 설정된 경우에만 적용됩니다.
$ bPGOProfile (Boolean): 이 빌드에서 PGO(프로파일 기반 최적화) 인스트루먼테이션을 활성화할지 여부입니다.
$ bPGOOptimize (Boolean): PGO(프로파일 기반 최적화)로 이 빌드를 최적화할지 여부입니다.
$ bCodeCoverage (Boolean): 타깃에 코드 커버리지 컴파일 및 링크가 필요한지 여부입니다.
$ bSupportEditAndContinue (Boolean): 편집 및 계속을 지원할지 여부입니다.
$ bOmitFramePointers (Boolean): 프레임 포인터를 생략할지 여부입니다. 비활성화하면 PC에서 메모리를 프로파일링하는 경우 등에 유용합니다.
$ bCompressDebugFile (Boolean): 디버그 파일을 압축할지 여부입니다.
$ bEnableCppModules (Boolean): C++20 모듈 지원을 활성화할지 여부입니다.
$ bEnableCppCoroutinesForEvaluation (Boolean): C++20 코루틴 지원을 활성화할지 여부입니다. 이 옵션은 기능 평가를 용이하게 하기 위해 제공됩니다. 옵션 이름이 변경될 예정입니다. UE에서 코루틴을 사용하는 것은 테스트되지 않았으며 지원되지 않습니다.
$ bEnableProcessPriorityControl (Boolean): 런타임에 프로세스 우선순위를 설정하는 엔진의 기능을 활성화할지 여부입니다. 이 옵션을 사용하려면 Linux에서 일부 환경 설정이 필요하므로 기본적으로 비활성화되어 있습니다. 올바른 설정을 보장하기 위해 프로젝트에서 이 기능을 옵트인해야 합니다.
$ bUseMallocProfiler (Boolean): true일 경우 빌드에서 메모리 프로파일링을 활성화합니다(USE_MALLOC_PROFILER=1로 정의하고 bOmitFramePointers=false 강제).
$ bShaderCompilerWorkerTrace (Boolean): true일 경우 셰이더 컴파일러 워커에 대해 빌드에서 언리얼 인사이트(utrace) 프로파일링을 활성화합니다(USE_SHADER_COMPILER_WORKER_TRACE=1로 정의).
$ bUseSharedPCHs (Boolean): 특정 PCH 헤더 파일을 포함하고 있다고 UBT가 탐지하는 모듈 간에 해당 PCH 파일 공유를 시도하여 컴파일 타임 속도를 크게 높이는 기능인 '공유 PCH'를 활성화합니다.
$ bUseShippingPhysXLibraries (Boolean): 개발 및 출시에서 PhysX/APEX의 출시 환경설정을 사용해야 하는 경우 true입니다.
$ bUseCheckedPhysXLibraries (Boolean): 개발 및 출시 빌드에서 PhysX/APEX의 확인된 환경설정을 사용해야 하는 경우 true입니다. bUseShippingPhysXLibraries가 true일 경우 무시됩니다.
$ bCheckLicenseViolations (Boolean): 현재 빌드 중인 모듈이 EULA를 위반하는지 확인하도록 UBT에 지시합니다.
$ bBreakBuildOnLicenseViolation (Boolean): 현재 빌드 중인 모듈이 EULA를 위반하는 경우 빌드를 중단하도록 UBT에 지시합니다.
$ bUseFastPDBLinking (Nullable<Boolean>): /DEBUG로 빌드하여 Windows에서 로컬 PDB를 생성할 경우 :FASTLINK 옵션을 사용할지 여부입니다. 빠르지만 현재는 디버거에서 심볼을 찾는 데 문제가 있는 것으로 보입니다.
$ bCreateMapFile (Boolean): 맵 파일을 빌드의 일부로 출력합니다.
$ bAllowRuntimeSymbolFiles (Boolean): 일부 플랫폼에서 빌드 후 단계로 런타임 심볼 파일을 생성해야 하는 경우 true입니다. 이러한 파일은 엔진에서 로그의 콜스택 백트레이스 심볼 이름을 확인하는 데 사용됩니다.
$ PackagePath (String): 링크 타임에 사용되는 입력 파일이 저장되는 패키지 전체 경로(디렉터리 + 파일 이름)입니다. 보통 지원 플랫폼에 대하여 링커 크래시를 디버그하는 데 사용됩니다.
$ CrashDiagnosticDirectory (String): 지원 플랫폼에 대하여 크래시 리포트 파일을 저장할 디렉터리입니다.
$ BundleVersion (String): Mac 앱의 번들 버전입니다.
$ bDeployAfterCompile (Boolean): 디플로이가 필요한 플랫폼에서 컴파일 후 실행파일을 디플로이할지 여부입니다.
$ bAllowRemotelyCompiledPCHs (Boolean): 활성화하면 XGE가 원격 머신에서 사전 컴파일된 헤더(Precompiled Header, PCH) 파일을 컴파일할 수 있습니다. 그러지 않으면 PCH는 항상 로컬에서 생성됩니다.
$ bUseHeaderUnitsForPch (Boolean): pch를 ifc로 대체하고 대신 헤더 유닛을 사용합니다. 실험단계이며 MSVC 전용 기능입니다.
$ bCheckSystemHeadersForModification (Boolean): 오래된 액션을 확인할 때 시스템 경로의 헤더가 수정되었는지 확인할지 여부입니다.
$ bDisableLinking (Boolean): 이 타깃에 대한 링크를 비활성화할지 여부입니다.
$ bIgnoreBuildOutputs (Boolean): 이 타깃에 대한 트래킹 빌드 출력을 무시할지 여부입니다.
$ bDisableEngineDeprecations (Boolean): 비엔진 모듈에서 UE_DEPRECATED_FORENGINE 지원 중단 경고를 비활성화할지 여부입니다. 이러한 지원 중단 기능은 곧 제거되므로 단기적으로만 사용해야 합니다.
$ bFormalBuild (Boolean): 이 빌드가 배포를 위한 정식 빌드인지 나타냅니다. 이 플래그는 Build.version에 체인지리스트 세트가 있고 프로모션된 빌드인 경우 자동으로 true로 설정됩니다. 현재 이 플래그에 바운드된 유일한 행동은 OriginalFilename 필드가 정확하게 설정되도록 각 바이너리에 대해 별도로 디폴트 리소스 파일을 컴파일하는 것입니다. 기본적으로 빌드 타임을 줄이기 위해 리소스는 한 번만 컴파일합니다.
$ bFlushBuildDirOnRemoteMac (Boolean): 빌드하기 전 원격 Mac에서 Builds 디렉터리를 정리할지 여부입니다.
$ bPrintToolChainTimingInfo (Boolean): 컴파일러와 링커에서 세부적인 타이밍 정보를 기록할지 여부입니다.
$ bParseTimingInfoForTracing (Boolean): 타이밍 데이터를 chrome://tracing과 호환되는 트레이싱 파일로 파싱할지 여부입니다.
$ bPublicSymbolsByDefault (Boolean): POSIX 플랫폼에서 모든 심볼을 기본적으로 공개로 노출할지 여부입니다.
$ bDisableInliningGenCpps (Boolean): gen.cpps 인라이닝 지원을 비활성화합니다.
$ ToolChainName (String): 이 타깃에 대해 생성할 툴 체인 오버라이드를 허용합니다. 언리얼 빌드 툴 어셈블리에서 선언한 클래스 이름과 일치해야 합니다.
$ MSVCCompileActionWeight (Single): MSVC 컴파일 액션의 가중치(CPU/메모리 사용률)입니다.
$ ClangCompileActionWeight (Single): clang 컴파일 액션의 가중치(CPU/메모리 사용률)입니다.
$ bDisableUnverifiedCertificates (Boolean): 엔진 환경설정에서 검증되지 않은 인증서를 로드할 수 있는지 결정하도록 허용할지 여부입니다.
$ bAllowGeneratedIniWhenCooked (Boolean): 쿠킹된 빌드에서 생성된 ini 파일을 로드할지 여부입니다. GameUserSettings.ini는 어떤 경우든 로드됩니다.
$ bAllowNonUFSIniWhenCooked (Boolean): 쿠킹된 빌드에서 ufs용이 아닌 ini 파일을 로드할지 여부입니다. GameUserSettings.ini는 어떤 경우든 로드됩니다.
$ bLegacyPublicIncludePaths (Boolean): 모든 공개 폴더를 컴파일 환경에 대한 인클루드 경로로 추가합니다.
$ bLegacyParentIncludePaths (Boolean): 모든 부모 폴더를 컴파일 환경에 대한 인클루드 경로로 추가합니다.
$ CppStandardEngine (CppStandardVersion): 이 타깃을 컴파일하는 데 사용할 C++ 표준입니다(엔진 모듈용).
$ CppStandard (CppStandardVersion): 이 타깃을 컴파일하는 데 사용할 C++ 표준입니다(비엔진 모듈용).
$ CStandard (CStandardVersion): 이 타깃을 컴파일하는 데 사용할 C 표준입니다.
$ MinCpuArchX64 (MinimumCpuArchitectureX64): 지원하는 x64 플랫폼에서 SSE 또는 AVX 인트린직(intrinsic)을 사용하는 경우 컴파일러가 AVX 인스트럭션을 생성하도록 지시합니다. arm64에서는 무시됩니다. 이 프로퍼티를 활성화하면 타깃 플랫폼의 최소 사양이 변경되며 그에 따른 실행파일은 AVX를 지원하지 않는 머신에서 충돌하게 됩니다.
$ BuildVersion (String): 빌드 버전 스트링입니다.
$ LinkType (TargetLinkType): 이 타깃에서 모듈을 링크하는 방법을 지정합니다(모놀리식 또는 모듈형). 이는 현재 하위 호환성을 위해 사용이 금지돼 있습니다. 지원 중단된 ShouldCompileMonolithic() 오버라이드가 제거될 때까지 GetLinkType() 액세서를 호출하세요.
$ bStripExports (Boolean): 실험단계: 라이브러리에서 사용하지 않는 익스포트를 제거합니다. LinkType이 모듈형(Modular)인 경우에만 적용됩니다.
$ bMergeModules (Boolean): 실험단계: 모듈형 모듈을 결합된 라이브러리로 병합합니다. LinkType을 모듈형(Modular)으로 설정하고 bStripExports를 활성화합니다.
$ LaunchModuleName (String): 실행 모듈의 이름을 지정합니다. 모듈형 빌드에서 이는 타깃의 실행 파일에 컴파일된 모듈입니다.
$ ExportPublicHeader (String): 이 타깃에 대한 공개 정의가 포함된 헤더를 쓸 경로를 지정합니다. 외부 빌드 프로세스에서 사용할 DLL을 빌드할 때 유용합니다.
$ BuildEnvironment (TargetBuildEnvironment): 이 타깃의 빌드 환경을 지정합니다. 사용 가능 옵션에 대한 추가 정보는 TargetBuildEnvironment를 참조하세요.
$ bAllowSDKOverrideModulesWithSharedEnvironment (Boolean): true이면 공유 빌드 환경 타깃은 SDK가 오버라이드될 때 SDK 버전에 민감한 모든 모듈이 프로젝트 측 모듈을 보유하는 것을 허용합니다. 예를 들어, 이 기능이 true로 설정된 타깃에 대해 IOS SDK 버전 관련으로 표시된 IOSTargetPlatform이 컴파일되고 해당 타깃이 IOS SDK를 오버라이드하는 경우, MyProject/Binaries/Win64/IOS/MyProject-IOSTargetPlatform.dll과 같은 식으로 컴파일됩니다.
$ bOverrideBuildEnvironment (Boolean): 공유 빌드 환경에 대한 위반(예: 에디터 타깃이 정의를 수정하는 경우)을 무시할지 여부입니다.
$ AdditionalCompilerArguments (String): 컴파일러에 전달할 추가 실행인자입니다.
$ AdditionalLinkerArguments (String): 링커에 전달할 추가 실행인자입니다.
$ MemoryPerActionGB (Double): 각 컴파일 액션에 필요할 수 있는 최대 메모리 양입니다. ParallelExecutor가 한꺼번에 시작할 병렬 동작의 최대 수를 결정하는 데 사용합니다.
$ GeneratedProjectName (String): 프로젝트 파일 생성 시, 동일한 타입의 타깃이 여러 개 있을 때 사용할 프로젝트 파일의 이름을 지정합니다.