언리얼 빌드 툴(Unreal Build Tool, UBT) 은 다음과 같은 여러 타깃 유형 빌드를 지원합니다.
-
게임 - 실행하려면 쿠킹된 데이터가 필요한 독립형 게임입니다.
-
클라이언트 - 게임과 동일하지만 서버 코드가 포함되어 있지 않습니다. 네트워크 게임에 유용합니다.
-
서버 - 게임과 동일하지만 클라이언트 코드가 포함되어 있지 않습니다. 네트워크 게임의 전용 서버에 유용합니다.
-
에디터 - 언리얼 에디터를 확장하는 타깃입니다.
-
프로그램 - 언리얼 엔진 위에 구축되는 독립형 유틸리티 프로그램입니다.
타깃은 확장자가 .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; // 기타 프로퍼티를 여기에 설정 } }
읽기 전용 프로퍼티
$ Platform(UnrealTargetPlatform): 이 타깃이 빌드될 플랫폼입니다.
$ Configuration(UnrealTargetConfiguration): 빌드될 환경설정입니다.
$ Architecture(String): 타깃이 빌드될 아키텍처입니다. 지정하지 않으면 디폴트로 빈 스트링입니다.
$ ProjectFile(FileReference): 이 타깃을 포함하는 프로젝트의 프로젝트 파일 경로입니다.
$ Version(ReadOnlyBuildVersion): 현재 빌드 버전입니다.
$ IsTestTarget (Boolean): 이것이 로우 레벨 테스트 타깃인지 여부입니다.
$ ExplicitTestsTarget (Boolean): 이것이 명시적으로 정의된 테스트 타깃인지 여부입니다. 명시적으로 정의된 테스트 타깃은 언제나 TestTargetRules
로부터 상속하며 자체적으로 테스트를 정의합니다. 묵시적 테스트 타깃은 -Mode=Test
로 빌드할 때 기존 타깃에서 생성되며 모든 종속성의 테스트를 포함합니다.
$ WithLowLevelTests (Boolean): 모듈별 로우 레벨 테스트가 컴파일되는지 여부를 나타내는 WITH_LOW_LEVEL_TESTS
값을 제어합니다.
$ HostPlatform(UnrealTargetPlatform): 빌드되고 있는 호스트 플랫폼을 가져옵니다.
$ bGenerateProjectFiles(Boolean): bGenerateProjectFiles
플래그를 타깃에 노출하여 지능 개선을 위해 행동을 수정할 수 있게 합니다.
$ bShouldTargetRulesTogglePlugins(Boolean): 타깃 규칙이 플러그인을 명시적으로 활성화 또는 비활성화하는 데 사용되는지 여부를 나타냅니다. 보통 레퍼런스된 플러그인을 빌드해야 하는지 여부를 프로젝트 파일에서 나타내는 경우가 아니면 프로젝트 생성에 필요하지 않습니다.
$ bIsEngineInstalled(Boolean): 엔진 설치 여부에 대한 세팅을 노출합니다.
읽기/쓰기 프로퍼티
$ Type(TargetType): 타깃의 타입입니다.
$ ForcedIncludeOrder (Nullable
$ 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
접미사가 필요하지 않은 바이너리의 환경설정을 지정합니다.
$ bBuildAllModules(Boolean): 이 타깃 타입에 유효한 모든 모듈을 빌드합니다. CIS 및 설치된 엔진 빌드를 만드는 데 사용됩니다.
$ VSTestRunSettingsFile (FileReference): 생성된 프로젝트의 VSTest 실행 세팅 파일을 참조하기 위해 설정합니다.
$ BuildPlugins(List
$ bRuntimeDependenciesComeFromBuildPlugins(Boolean): True인 경우 EnablePlugins
가 아닌 BuildPlugins
목록을 사용하여 RuntimeDependencies
를 채웁니다.
$ AdditionalPlugins(ListModuleHostType
의 카테고리에 맞지 않는 프로그램 타깃의 특정 모듈에 대해 빌드할 수 있습니다.
$ EnablePlugins(List
$ DisablePlugins(List
$ InternalPluginDependencies(List
$ PakSigningKeysFile(String): 실행 파일에 임베딩해야 하는 PAK 서명 키 세트 경로입니다.
$ SolutionDirectory(String): 프로그램 타깃이 솔루션 폴더 경로를 지정할 수 있도록 합니다.
$ bBuildInSolutionByDefault(Nullable
$ bShouldCompileAsDLL(Boolean): 타깃이 다이내믹 링크 라이브러리(Dynamic-Link Library, DLL)로 컴파일되어야 하는지 여부입니다. LinkType
을 TargetLinkType.Monolithic
으로 설정해야 합니다.
$ CustomConfig(String): 같은 플랫폼으로 다수 타입의 빌드를 만들 때 환경설정 파일을 로드하기 위한 추가 서브 디렉터리입니다. 게임 실행 파일에 CUSTOM_CONFIG
으로 구워지며, 파일 및 세팅의 필터링을 위한 스테이징 시 사용됩니다.
$ ExeBinariesSubFolder(String): 디폴트 위치를 기준으로 실행 파일을 배치할 하위 폴더입니다.
$ GeneratedCodeVersion(EGeneratedCodeVersion): 타깃 모듈이 언리얼 헤더 툴(Unreal Header Tool, UHT) 코드 생성 버전을 오버라이드할 수 있도록 합니다.
$ bEnableMeshEditor(Boolean): 메시 에디터 활성화 여부입니다.
$ bCompileChaos(Boolean): 카오스 피직스 플러그인 컴파일 여부입니다.
$ bUseChaos(Boolean): 카오스 피직스 인터페이스 사용 여부입니다. PhysX 플래그를 오버라이드하여 APEX 및 NvCloth를 비활성화합니다.
$ bUseChaosChecked(Boolean): 디버깅을 위해 체크한 카오스 피처를 컴파일할지 여부입니다.
$ bUseChaosMemoryTracking(Boolean): 카오스 메모리 트래킹 기능을 컴파일할지 여부입니다.
$ 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 지원 컴파일 여부입니다.
$ bUseIris (Boolean): Iris를 사용할지 여부입니다.
$ bForceBuildTargetPlatforms(Boolean): 보통은 빌드되지 않는 경우에도 타깃 플랫폼 모듈을 강제로 컴파일할지 여부입니다.
$ bForceBuildShaderFormats(Boolean): 보통은 빌드되지 않는 경우에도 셰이더 포맷 모듈을 강제로 컴파일할지 여부입니다.
$ bNeedsExtraShaderFormatsOverride (Nullable
$ bCompileCustomSQLitePlatform(Boolean): SQLite를 컴파일하는 데 맞춤형 "언리얼" 플랫폼(True
)을 사용할지 네이티브 플랫폼(False
)을 사용할지 여부입니다.
$ bUseCacheFreedOSAllocs(Boolean): MallocBinned를 사용하는 캐시 프리 OS 활용 여부입니다.
$ bCompileRecast(Boolean): 리캐스트 내비메시 생성을 컴파일할지 여부입니다.
$ bCompileNavmeshSegmentLinks(Boolean): 내비메시 세그먼트 링크와 컴파일할지 여부입니다.
$ bCompileNavmeshClusterLinks(Boolean): 내비메시 클러스터 링크와 컴파일할지 여부입니다.
$ bForceEnableExceptions(Boolean): 모든 모듈에서 예외를 활성화합니다.
$ bUseInlining(Boolean): 모든 모듈에서 인라이닝을 활성화합니다.
$ bForceEnableObjCExceptions(Boolean): 모든 모듈에서 예외를 활성화합니다.
$ bForceEnableRTTI(Boolean): 모든 모듈에서 RTTI를 활성화합니다.
$ bCompileWithStatsWithoutEngine(Boolean): 엔진이 없어도 통계 지원을 포함할지 여부입니다.
$ bCompileWithPluginSupport(Boolean): 플러그인 지원을 포함할지 여부입니다.
$ bCompileWithAccessibilitySupport(Boolean): Slate와 OS 레이어 모두에서 접근성 코드를 허용할지 여부입니다.
$ bUseDebugLiveCodingConsole(Boolean): 라이브 코딩 지원 활성화 여부입니다.
$ bWithDirectXMath(Boolean): DirectX Math 지원 활성화 여부입니다. (이 기능은 더 이상 지원되지 않습니다.)
$ bUseLoggingInShipping(Boolean): 테스트/배포 빌드의 로깅을 켤지 여부입니다.
$ bLoggingToMemoryEnabled(Boolean): 테스트/배포 빌드의 메모리 로깅을 켤지 여부입니다.
$ bUseLauncherChecks(Boolean): 프로세스가 외부 런처를 통해 실행되었는지 확인할지 여부입니다.
$ bUseChecksInShipping(Boolean): 테스트/배포 빌드 확인(어서트)을 켤지 여부입니다.
$ bTCHARIsUTF8(Boolean): UTF-8을 켜고 TCHAR
을 UTF8CHAR
로 매핑할지 여부입니다.
$ bUseEstimatedUtcNow(Boolean): EstimatedUtcNow
나 PlatformUtcNow
를 사용할지 여부입니다. EstimatedUtcNow
는 PlatformUtcNow
가 느릴 수 있는 경우에 적합합니다.
$ bCompileFreeType(Boolean): FreeType 지원이 필요한 경우 True입니다.
$ bCompileForSize(Boolean): 속도보다 크기를 최적화하는 경우 True입니다.
$ OptimizationLevel (OptimizationMode): 속도 및/또는 코드 크기에 대한 최적화 레벨의 미세 조정을 허용할지 여부입니다.
$ bForceCompileDevelopmentAutomationTests(Boolean): 개발 자동화 테스트를 컴파일할지 여부입니다.
$ bForceCompilePerformanceAutomationTests(Boolean): 퍼포먼스 자동화 테스트를 컴파일할지 여부입니다.
$ bForceDisableAutomationTests(Boolean): 자동화 테스트를 위해 디폴트를 오버라이드할지 여부입니다(디버그/개발 환경설정).
$ bEventDrivenLoader(Boolean): true일 경우 쿠킹된 빌드에서 이벤트 기반 로더가 사용됩니다.
$ NativePointerMemberBehaviorOverride(NullableTObjectPtr
멤버로 대체되어야 합니다.
$ bUseXGEController(Boolean): XGE 컨트롤러 작업자 및 모듈이 엔진 빌드에 포함되어야 하는지 여부입니다. XGE 인터셉션 인터페이스를 사용하는 분산 셰이더 컴파일에 필요합니다.
$ bIWYU(Boolean): 이 타깃의 모듈에 기본적으로 IWYU(include what you see) 모드를 활성화합니다. 이 프로젝트의 모든 모듈에 대한 디폴트 PCH 모드를 PCHUsageMode.UseExplicitOrSharedPCHs
로 변경합니다.
$ bEnforceIWYU (Boolean): IWYU 규칙을 적용합니다. 모놀리식 헤더(예: Engine.h
, UnrealEd.h
등)가 사용될 경우 경고하고 먼저 소스 파일에 일치하는 헤더가 포함되어 있는지 확인합니다.
$ bPrecompile (Boolean): 모든 엔진 모듈의 스태틱 라이브러리를 이 타깃의 중간 과정으로 만듭니다.
$ bEnableOSX109Support(Boolean): OS X 10.9 Mavericks를 지원하도록 컴파일해야 하는지 여부입니다. 이 OS X 버전과 호환되어야 하는 일부 툴에 사용됩니다.
$ bIsBuildingConsoleApplication(Boolean): 콘솔 애플리케이션을 빌드하는 경우 True입니다.
$ bDisableSymbolCache(Boolean): 일부 플랫폼에 대해 캐시된 디버그 심볼이 생성되지 않아야 하는 경우 True입니다.
$ bForceUnityBuild(Boolean): 빠른 컴파일을 위해 C++ 소스 파일을 강제로 더 큰 파일로 결합할지 여부입니다.
$ bMergeModuleAndGeneratedUnityFiles (Boolean): 빠른 컴파일을 위해 모듈 및 생성된 Unity 파일을 병합할지 여부입니다.
$ bUseAdaptiveUnityBuild(Boolean): 휴리스틱 기법을 사용하여 현재 어떤 파일이 반복되고 있는지 확인하고 통합 블롭에서 제외하여 점진적으로 컴파일 타임이 빨라지게 합니다. 현재 구현에서는 파일이 수정된 경우 소스 컨트롤 시스템을 통해 파일이 쓰기 가능하게 된다고 가정하고 읽기 전용 플래그를 사용하여 작업 세트를 구분합니다. 퍼포스(Perforce)의 경우 true이지만 Git의 경우에는 그렇지 않습니다.
$ bAdaptiveUnityDisablesOptimizations(Boolean): 적응형 비Unity 작업 세트에 있는 파일에 대한 최적화를 비활성화합니다.
$ bAdaptiveUnityDisablesPCH(Boolean): 적응형 비Unity 작업 세트에 있는 파일의 강제 포함 PCH를 비활성화합니다.
$ bAdaptiveUnityCreatesDedicatedPCH(Boolean): 작업 세트의 각 소스 파일에 대한 전용 PCH를 만들어 cpp 전용 변경 사항을 더 빠르게 반복작업할 수 있습니다.
$ bAdaptiveUnityEnablesEditAndContinue(Boolean): 작업 세트의 각 소스 파일에 대한 전용 PCH를 만들어 cpp 전용 변경 사항을 더 빠르게 반복작업할 수 있습니다.
$ bAdaptiveUnityCompilesHeaderFiles(Boolean): 헤더에서 누락된 include를 탐지하기 위해 작업 중인 세트에서 각 헤더 파일에 전용 소스 파일을 생성합니다.
$ MinGameModuleSourceFilesForUnityBuild(Int32): 통합 빌드 전 게임 모듈에서 해당 모듈에 대해 활성화되는 소스 파일 수입니다. 이를 통해 전체 리빌드 타임이 느려지는 대신 작은 게임 모듈의 단일 파일에 대한 반복 컴파일 타임이 빨라집니다. 이 세팅은 모듈의 Build.cs
파일에 있는 bFasterWithoutUnity
옵션으로 오버라이드될 수 있습니다.
$ ShadowVariableWarningLevel (WarningLevel): 섀도 변수 경고를 지원하는 플랫폼에서 오류로 강제 처리합니다.
$ bWarningsAsErrors(Boolean): 모든 경고를 오류로 활성화할지 여부입니다. UE는 원래 대부분의 경고를 오류로 활성화하지만, 지원 중단 경고와 같은 일부 경고는 비활성화합니다.
$ UnsafeTypeCastWarningLevel (WarningLevel): 지원하는 플랫폼에서 어떤 경고/오류 레벨을 안전하지 않은 타입 형변환으로 취급할지 나타냅니다(예: double->float
또는 int64->int32
).
$ bUndefinedIdentifierErrors(Boolean): 조건부 표현식에서 정의되지 않은 식별자를 사용하면 오류로 취급하도록 강제합니다.
$ bRetainFramePointersOverride (Nullable
$ bUseFastMonoCalls(Boolean): 새로운 모놀리식 그래픽 드라이버에는 다양한 D3d 기능을 대체하는 '빠른 호출' 옵션이 있습니다.
$ NumIncludedBytesPerUnityCPP(Int32): 단일 통합 C++ 파일에 포함하기 위해 타깃으로 지정할 C++ 코드의 대략적인 바이트 수입니다.
$ bStressTestUnity(Boolean): 단일 통합 파일의 프로젝트에 모든 C++ 파일을 포함하여 C++ 통합 빌드 견고성을 집중 테스트할지 여부입니다.
$ bDetailedUnityFiles (Boolean): 파일 이름에 '_of_X'를 넣는 등 Unity 파일에 추가 정보를 추가할지 여부입니다.
$ bForceDebugInfo(Boolean): 디버그 정보를 강제 생성할지 여부입니다.
$ bDisableDebugInfo(Boolean): 디버그 정보 생성을 전체적으로 비활성화할지 여부입니다. 환경설정별 및 플랫폼별 옵션은 DebugInfoHeuristics.cs
에서 확인하세요.
$ bDisableDebugInfoForGeneratedCode(Boolean): 생성된 파일에 대한 디버그 정보 생성을 비활성화할지 여부입니다. 비활성화하면 글루 코드가 많이 생성된 모듈의 링크 타임을 개선합니다.
$ bOmitPCDebugInfoInDevelopment(Boolean): 개발 빌드에서 PC/Mac에 대한 디버그 정보를 비활성화할지 여부입니다. 디버그 정보를 비활성화하면 링크 타임이 매우 빨라지므로 개발자 반복작업의 속도를 높일 수 있습니다.
$ bUsePDBFiles(Boolean): PDB 파일을 Visual C++ 빌드에 사용해야 하는지 여부입니다.
$ bUsePCHFiles(Boolean): PCH 파일을 사용해야 하는지 여부입니다.
$ bDeterministic (Boolean): 결정론적 링크에 필요한 플래그를 설정합니다. 실험단계 기능으로, 완전히 지원되지 않을 수 있습니다. 결정론적 컴파일은 ModuleRules.cs
를 통해 제어됩니다.
$ bForceDeterministic (Boolean): 결정론적 컴파일 및 링크에 필요한 플래그를 강제 설정합니다. 실험단계 기능으로, 완전히 지원되지 않을 수 있습니다. 이 세팅은 테스트용으로만 권장됩니다. 다음 세팅을 대신 사용하세요.
ModuleRules.cs
에 모듈별로 bDeterministic을 설정하여 결정론적 컴파일을 제어합니다.
TargetRules.cs
에 타깃별로 bDeterministic을 설정하여 결정론적 링크를 제어합니다.
$ bPreprocessOnly(Boolean): 이 타깃의 소스 파일을 사전 프로세스하고 컴파일을 건너뛸지 여부입니다.
$ bPreprocessDepends (Boolean): 사전 프로세싱으로 종속성 파일을 생성합니다. 오버헤드가 늘어나기 때문에 빌드 배포 시에만 권장됩니다.
$ StaticAnalyzer (StaticAnalyzer): 스태틱 코드 분석을 활성화할지 여부입니다.
$ StaticAnalyzerOutputType (StaticAnalyzerOutputType): 스태틱 분석 툴에 사용할 출력 타입입니다. Clang에서만 지원됩니다.
$ StaticAnalyzerMode (StaticAnalyzerMode): 스태틱 분석 툴에 사용할 모드입니다. Clang에서만 지원됩니다. 얕은 모드로 설정하면 더 빨리 완료되지만 일반적으로 권장되지 않습니다.
$ MinFilesUsingPrecompiledHeader(Int32): 사전 컴파일된 헤더를 생성하고 사용하기 전에 이를 사용해야 하는 파일의 최소 개수입니다.
$ bForcePrecompiledHeaderForGameModules(Boolean): 활성화하면 모듈에 소스 파일 수가 적은 경우에도 항상 게임 모듈에 사전 컴파일된 헤더가 생성됩니다. 이렇게 하면 소규모 게임 프로젝트의 전체 리빌드 타임이 느려지는 대신 프로젝트에서 일부 파일에 대한 반복 변경의 컴파일 타임이 크게 개선됩니다. 모듈의 Build.cs
파일에 MinFilesUsingPrecompiledHeaderOverride
를 세팅하여 오버라이드할 수 있습니다.
$ bUseIncrementalLinking(Boolean): 증분 링크를 사용할지 여부입니다. 증분 링크를 사용하면 작은 변경 사항이 있을 때 반복작업 시간이 빨라집니다. 일부 컴퓨터에서 버그가 있어(PDB 관련 컴파일 오류) 현재는 기본적으로 비활성화되어 있습니다.
$ bAllowLTCG(Boolean): LTCG(링크 타임 코드 생성) 사용을 허용할지 여부입니다.
$ bPreferThinLTO(Boolean): LTCG(링크 타임 코드 생성)가 활성화되었을 때 지원되는 플랫폼에서 더 가벼운 버전 사용을 선호할지 여부입니다.
$ bPGOProfile(Boolean): 이 빌드에서 PGO(프로파일 기반 최적화) 인스트루먼테이션을 활성화할지 여부입니다.
$ bPGOOptimize(Boolean): PGO(프로파일 기반 최적화)로 이 빌드를 최적화할지 여부입니다.
$ bSupportEditAndContinue(Boolean): 편집 및 계속을 지원할지 여부입니다. Microsoft 컴파일러에서만 작동합니다.
$ bOmitFramePointers(Boolean): 프레임 포인터를 생략할지 여부입니다. 비활성화하면 PC의 메모리를 프로파일링하는 경우 등에 유용합니다.
$ bEnableCppModules(Boolean): C++20 모듈 지원 활성화 여부입니다.
$ bEnableCppCoroutinesForEvaluation(Boolean): C++20 코루틴 지원 활성화 여부입니다. 이 옵션은 기능 평가를 촉진하기 위해 제공됩니다. 옵션 이름이 변경될 예정입니다. UE에서 코루틴을 사용하는 것은 테스트되지 않았으며 지원되지 않습니다.
$ bUseMallocProfiler(Boolean): True일 경우 빌드의 메모리 프로파일링을 활성화하세요(USE_MALLOC_PROFILER=1
을 정의하고 bOmitFramePointers=false
를 강제).
$ bUseSharedPCHs(Boolean): PCH의 헤더 파일을 포함하고 있다고 UBT가 탐지하는 모듈 간에 특정 PCH 파일 공유를 시도하여 컴파일 타임 속도를 크게 높이는 "Shared PCHs"를 활성화합니다.
$ bUseShippingPhysXLibraries(Boolean): 개발 및 출시 빌드에서 PhysX/APEX의 릴리스 환경설정을 사용해야 하는 경우 True입니다.
$ bUseCheckedPhysXLibraries(Boolean): 개발 및 출시 빌드에서 PhysX/APEX의 확인된 환경설정을 사용해야 하는 경우 True입니다. bUseShippingPhysXLibraries
가 True일 경우 무시됩니다.
$ bCheckLicenseViolations(Boolean): 현재 빌드 중인 모듈이 EULA를 위반하는지 확인하도록 UBT에 지시합니다.
$ bBreakBuildOnLicenseViolation(Boolean): 현재 빌드 중인 모듈이 EULA를 위반하는 경우 빌드를 중단하도록 UBT에 지시합니다.
$ bUseFastPDBLinking(Nullable
$ bCreateMapFile(Boolean): 맵 파일을 빌드의 일부로 출력합니다.
$ bAllowRuntimeSymbolFiles(Boolean): 일부 플랫폼에서 빌드 후 단계로 런타임 심볼 파일을 생성해야 하는 경우 True입니다. 이러한 파일은 엔진에서 로그의 콜 스택 백트레이스 심볼 이름을 확인하는 데 사용됩니다.
$ PackagePath (String): 링크 타임에 사용되는 입력 파일이 저장되는 패키지 전체 경로(디렉터리 + 파일 이름)입니다. 보통 지원 플랫폼에 대하여 링커 크래시를 디버그하는 데 사용됩니다.
$ CrashDiagnosticDirectory (String): 지원 플랫폼에 대하여 크래시 리포트 파일을 저장하는 디렉터리입니다.
$ BundleVersion(String): Mac 앱의 번들 버전입니다.
$ bDeployAfterCompile(Boolean): 디플로이가 필요한 플랫폼에서 컴파일 후 실행 파일을 디플로이할지 여부입니다.
$ bAllowRemotelyCompiledPCHs(Boolean): 활성화하면 XGE가 원격 머신에서 사전 컴파일된 헤더(Precompiled Header, PCH) 파일을 컴파일할 수 있습니다. 그러지 않으면 PCH는 항상 로컬에서 생성됩니다.
$ bCheckSystemHeadersForModification(Boolean): 오래된 액션을 확인할 때 시스템 경로의 헤더가 수정되었는지 확인할지 여부입니다.
$ bDisableLinking(Boolean): 이 타깃에 대한 링크를 비활성화할지 여부입니다.
$ bIgnoreBuildOutputs (Boolean): 이 타깃에 대한 트래킹 빌드 출력을 무시할지 여부입니다.
$ bFormalBuild(Boolean): 이 빌드가 배포를 위한 정식 빌드인지 나타냅니다. 이 플래그는 Build.version
에 체인지리스트 세트가 있으면 자동으로 True로 설정됩니다. 현재 이 플래그에 바운드된 유일한 행동은 OriginalFilename
필드가 정확하게 설정되도록 각 바이너리에 대해 별도로 디폴트 리소스 파일을 컴파일하는 것입니다. 기본적으로 빌드 타임을 줄이기 위해 리소스는 한 번만 컴파일합니다.
$ bFlushBuildDirOnRemoteMac(Boolean): 빌드하기 전 원격 Mac에서 Builds 디렉터리를 정리할지 여부입니다.
$ bPrintToolChainTimingInfo(Boolean): 컴파일러와 링커에서 세부적인 타이밍 정보를 기록할지 여부입니다.
$ bParseTimingInfoForTracing(Boolean): 타이밍 데이터를 chrome://tracing과 호환되는 트레이싱 파일로 파싱할지 여부입니다.
$ bPublicSymbolsByDefault(Boolean): POSIX 플랫폼에서 모든 심볼을 기본적으로 공개로 노출할지 여부입니다.
$ ToolChainName(String): 이 타깃에 대해 생성한 툴 체인을 오버라이드할 수 있습니다. 언리얼 빌드 툴(Unreal Build Tool, UBT) 어셈블리에서 선언한 클래스 이름과 일치해야 합니다.
$ bDisableUnverifiedCertificates(Boolean): 엔진 환경설정에서 검증되지 않은 인증서를 로드할 수 있는지 확인을 허용할지에 대한 여부입니다.
$ bAllowGeneratedIniWhenCooked(Boolean): 쿠킹된 빌드된 빌드에서 생성된 .ini
파일을 로드할지 여부입니다(GameUserSettings.ini
는 어떤 경우든 로드됩니다).
$ bAllowNonUFSIniWhenCooked(Boolean): 쿠킹된 빌드에서 ufs용이 아닌 ini 파일을 로드할지 여부입니다(GameUserSettings.ini
는 어떤 경우든 로드됩니다).
$ CppStandard (CppStandardVersion): 이 타깃을 컴파일하는 데 사용할 C++ 표준입니다.
$ CStandard (CStandardVersion): 이 타깃을 컴파일하는 데 사용할 C 표준입니다.
$ BuildVersion(String): 빌드 버전 스트링입니다.
$ GlobalDefinitions(List
$ ProjectDefinitions(List
$ ExportPublicHeader(String): 이 타깃에 대한 공식적인 정의가 포함된 헤더를 어떤 경로에 작성할지 지정합니다. 외부 빌드 프로세스에서 사용할 DLL을 빌드할 때 유용합니다.
$ ExtraModuleNames(List
$ ManifestFileNames(List
$ DependencyListFileNames(List
$ bOverrideBuildEnvironment(Boolean): 공유된 빌드 환경에 대한 위반 사항을 무시할지 여부입니다(예: 에디터 타깃 수정 정의).
$ PreBuildTargets(List
$ PreBuildSteps(List$(EngineDir)
, $(ProjectDir)
, $(TargetName)
, $(TargetPlatform)
, $(TargetConfiguration)
, $(TargetType)
, $(ProjectFile)
.
$ PostBuildSteps(List$(EngineDir)
, $(ProjectDir)
, $(TargetName)
, $(TargetPlatform)
, $(TargetConfiguration)
, $(TargetType)
, $(ProjectFile)
.
$ AdditionalBuildProducts(List
$ AdditionalCompilerArguments(String): 컴파일러에 전달할 추가 실행인자입니다.
$ AdditionalLinkerArguments(String): 링커에 전달할 추가 실행인자입니다.
$ MemoryPerActionGB(Double): 각 컴파일 동작이 요구할 수 있는 메모리의 최대량입니다. ParallelExecutor가 한꺼번에 시작할 병렬 동작의 최대 수를 결정하는 데 사용합니다.
$ DisableUnityBuildForModules(String[]): Unity 빌드를 비활성화할 모듈 목록입니다.
$ EnableOptimizeCodeForModules(String[]): 최적화를 활성화할 모듈 목록입니다.
$ DisableOptimizeCodeForModules(String[]): 최적화를 비활성화할 모듈 목록입니다.
$ GeneratedProjectName(String): 프로젝트 파일을 생성할 때 동일한 타입의 타깃이 여러 개 있을 때 사용할 프로젝트 파일의 이름을 지정합니다.
$ OptedInModulePlatforms(UnrealTargetPlatform[]): 이것이 Null이 아닌 경우 목록에 없는 플랫폼은 생성되는 디렉터리에서 모듈을 가질 수 없습니다.
$ Name (String): 이 타깃의 이름입니다.
$ DefaultBuildSettings (BuildSettingsVersion): 하위 호환되는 디폴트 빌드 세팅을 유지할 엔진 버전을 지정합니다(예: DefaultSettingsVersion.Release_4_23
, DefaultSettingsVersion.Release_4_24
). 업그레이드 시 빌드 오류가 발생할 위험성이 있더라도 항상 현재 엔진 버전에 대한 디폴트를 사용하려면 DefaultSettingsVersion.Latest
를 지정합니다.
$ IncludeOrderVersion (EngineIncludeOrderVersion): 이 타깃을 컴파일할 때 사용할 인클루드 순서의 버전입니다. 명령줄에서 -ForceIncludeOrder
를 통해 오버라이드될 수 있습니다. ModuleRules.IncludeOrderVersion
이 우선합니다.
$ bAllowHotReload(Boolean): 이 타깃이 핫 리로드를 지원하는지 여부입니다.
$ bUseGameplayDebugger (Boolean): WITH_GAMEPLAY_DEBUGGER
활성화 상태로 컴파일하여 GameplayDebugger를 사용할지 여부입니다.
$ bBuildEditor(Boolean): 에디터 코드 컴파일 여부입니다. 더 명시적인 bCompileAgainstEditor 를 선호합니다.
$ bBuildRequiresCookedData(Boolean): 컴파일 코드가 빌딩 에셋과 관련되는지 여부입니다. 콘솔은 일반적으로 에셋을 빌드하지 못합니다. 데스크톱 플랫폼은 일반적으로 가능합니다.
$ bBuildWithEditorOnlyData(Boolean): WITH_EDITORONLY_DATA
를 비활성화하고 컴파일할지 여부입니다. Windows에서만 사용하며, 다른 플랫폼에서는 강제로 false가 됩니다.
$ bBuildDeveloperTools(Boolean): 개발자 툴을 컴파일할지 여부입니다.
$ bBuildTargetDeveloperTools(Boolean): 타깃 플랫폼 또는 연결된 디바이스에 대한 개발자 툴을 컴파일할지 여부입니다(bBuildDeveloperTools
로 디폴트 설정됩니다).
$ bNeedsExtraShaderFormats (Boolean): 추가 셰이더 포맷을 포함할지 여부입니다. 기본적으로 프로그램 및 에디터 타깃에 대해서만 활성화됩니다.
$ bCompileAgainstEngine(Boolean): 엔진 프로젝트를 포함하는 모든 빌드에 대해 활성화됩니다. 코어와 연결만 하는 독립형 앱을 빌드하는 경우에만 비활성화됩니다.
$ bCompileAgainstCoreUObject(Boolean): CoreUObject 프로젝트를 포함하는 모든 빌드에 대해 활성화됩니다. 코어와 연결만 하는 독립형 앱을 빌드하는 경우에만 비활성화됩니다.
$ bCompileAgainstApplicationCore(Boolean): ApplicationCore 모듈을 초기화해야 하는 빌드에 대해 활성화됩니다. 보통 명령줄 유틸리티에는 이 프로퍼티가 필요하지 않습니다.
$ bCompileAgainstEditor (Boolean): 에디터 빌드(TargetType.Editor
)에 대하여 활성화됩니다. 에디터 코드에 대하여 컴파일해야 하는 프로그램(TargetType.Program
)에 대해서는 오버라이드될 수 있습니다. 다른 타깃 타입에 대해서는 사용할 수 없습니다. 주로 WITH_EDITOR
값을 구동합니다.
$ bCompileSpeedTree(Boolean): SpeedTree를 지원하도록 컴파일해야 하는지 여부입니다.
$ bWithServerCode(Boolean): 서버 전용 코드를 컴파일합니다.
$ bFNameOutlineNumber (Boolean): 이름 테이블에서 숫자 부분을 저장하는 FName으로 컴파일합니다. 대부분의 이름에 번호가 매겨지지 않을 때와 여러 번 참조되는 이름에 메모리가 절약됩니다. 게임과 엔진은 메모리 누수를 피하기 위해 이름 스트링과 유사하게 번호가 매겨진 이름을 반드시 재사용해야 합니다.
$ bWithPushModel(Boolean): 활성화하면 푸시 모델 네트워킹 지원이 컴파일됩니다. 이는 네트워킹의 CPU 오버헤드를 줄이지만 메모리를 더 소모합니다. 에디터 빌드에서는 항상 활성화됩니다.
$ bIncludePluginsForTargetPlatforms(Boolean): 모든 타깃 플랫폼을 지원하는 플러그인을 허용할지 여부입니다.
$ bWithPerfCounters(Boolean): PerfCounters 지원을 포함할지 여부입니다.
$ bWithLiveCoding(Boolean): 라이브 코딩 지원 활성화 여부입니다.
$ bHasExports(Boolean): 마지막 실행 파일이 심볼을 익스포트할지 여부입니다.
$ bBuildAdditionalConsoleApp(Boolean): true인 경우 추가 콘솔 애플리케이션을 생성합니다. Windows를 위한 팁: 애플리케이션이 호출된 방식에 따라 부모의 콘솔 창을 조건부로 상속할 수 없다면, 동일한 실행 파일을 다른 서브시스템 세팅으로 링크해야 합니다.
$ bUseUnityBuild(Boolean): 빠른 컴파일을 위해 C++ 코드를 더 큰 파일로 통일할지 여부입니다.
$ bAdaptiveUnityDisablesPCHForProject(Boolean): 적응형 비통합 작업 세트에서 프로젝트 소스 파일에 강제 포함된 PCH를 비활성화할지 여부입니다. bAdaptiveUnityDisablesPCH
로 디폴트 설정됩니다.
$ DefaultWarningLevel(WarningLevel): 분류되지 않은 경고의 디폴트 처리 방식입니다.
$ DeprecationWarningLevel(WarningLevel): 지원 중단 경고를 오류로 보고하는 레벨입니다.
$ bRetainFramePointers(Boolean): 프레임 포인터가 유지되도록 강제합니다. 보통 안정적인 콜스택(예: mallocframeprofiler
등)을 원하는 경우 필요합니다.
$ bLegacyPublicIncludePaths (Boolean): 모든 공개 폴더를 컴파일 환경에 대한 include 경로로 추가합니다.
$ LinkType(TargetLinkType): 이 타깃에서 모듈을 링크하는 방법을 지정합니다(모놀리식 또는 모듈). 이는 현재 하위 호환성을 위해 사용이 금지돼 있습니다. 지원 중단된 ShouldCompileMonolithic()
오버라이드가 제거될 때까지 GetLinkType()
액세서를 호출하세요.
$ LaunchModuleName(String): 실행 모듈의 이름을 지정합니다. 모듈형 빌드에서 이는 타깃의 실행 파일에 컴파일된 모듈입니다.
$ BuildEnvironment(TargetBuildEnvironment): 이 타깃의 빌드 환경을 지정합니다. 사용 가능 옵션에 대한 추가 정보는 TargetBuildEnvironment
를 참고하세요.