*BuildGraph 는 언리얼 엔진에서 확장 가능한 빌드 프로세스를 생성하기 위한 언리얼 자동화 툴(Unreal Automation Tool, UAT) 스크립트입니다. 이 스크립트는 로컬로 실행하거나 빌드 팜 전체에서 병렬로 실행할 수 있습니다.
명령줄에서 실행
언리얼 자동화 툴 스크립트를 사용하면 Engine\Build\BatchFiles
디렉터리에서 RunUAT
배치 파일 또는 플랫폼에 따라 셸 스크립트를 통해 명령줄에서 직접 BuildGraph를 실행할 수 있습니다.
Windows
./RunUAT.bat BuildGraph [ARGUMENTS]
Linux 및 Mac
./RunUAT.sh BuildGraph [ARGUMENTS]
예시 스크립트
엔진 소스에는 사용 가능한 몇 가지 BuildGraph XML 파일 예시가 포함되어 있습니다. 이러한 파일은 Engine/Build/Graph/Examples
디렉터리에 있습니다. 이러한 파일 예시에는 다음이 포함됩니다.
AllExamples.xml
: 이 스크립트는Properties.xml
,TagsAndFiles.xml
및Building.xml
스크립트를 포함합니다.BuildEditorAndTools.xml
: 이 스크립트는 아티스트가 엔진으로 작업하고, 배포를 위해 이를 스테이징 디렉터리에 복사하고, 선택적으로 이를 Perforce에 제출하는 데 필요한 툴과 에디터 바이너리를 컴파일하는 방법을 보여줍니다.Building.xml
: 이 스크립트는 UnrealPak를 컴파일합니다.BuildWorldPartitionHLODs.xml
: 이 스크립트는 월드 파티션 HLOD를 빌드합니다.Macros.xml
: 이 스크립트는 매크로를 정의하고 사용하는 예시를 보여줍니다.Properties.xml
: 이 스크립트는 다양한 BuildGraph 프로퍼티를 사용하는 예시를 보여줍니다.TagsAndFiles.xml
: 이 스크립트는 파일을 조작하고 인터랙션하는 예시를 보여줍니다.
BuildGraph에 사용되는 XML 스키마 파일의 이름은 Schema.xsd
이고 Engine/Build/Graph
에 있습니다.
예시 명령
사용 가능한 모든 노드 및 옵션
BuildGraph 스크립트에서 사용 가능한 노드 및 옵션을 모두 확인하려면 다음을 수행합니다.
./RunUAT.bat BuildGraph -Script=Engine/Build/Graph/Examples/AllExamples.xml -ListOnly
컨트롤 플로
Properties.xml
BuildGraph 스크립트를 실행하면 컨트롤 플로가 작동하는 방식을 확인할 수 있습니다.
./RunUAT.bat BuildGraph -Script=Engine/Build/Graph/Examples/Properties.xml -Target="Property Examples" -Clean
이 스크립트는 true로 평가되고 해당 메시지를 출력하는 조건을 실행합니다. 또한 BuildGraph 스크립트 분석의 일부로 설명되는 몇 가지 컨트롤 플로 명령문의 행동을 보여줍니다.
언리얼 엔진의 설치 빌드 생성
제공된 InstalledEngineBuild.xml
BuildGraph 스크립트를 사용하면 다음 명령어를 통해 Windows용 UE 설치 빌드를 생성할 수 있습니다.
./RunUAT.bat BuildGraph -Script=Engine/Build/InstalledEngineBuild.xml -Target="Make Installed Build Win64" -set:HostPlatformOnly=true -Clean
이 스크립트는 <UNREAL_ENGINE_ROOT>/LocalBuilds/InstalledDDC/Engine/Binaries/Win64
에서 찾을 수 있는 설치 엔진 빌드를 생성합니다.
명령줄 실행인자
BuildGraph는 명령줄에 도움말 텍스트를 표시하는 -help
명령어를 지원합니다. 명령줄에서 사용 가능한 BuildGraph
실행인자를 보려면 다음을 실행합니다.
./RunUAT.bat BuildGraph -help
커스텀 명령줄 옵션
BuildGraph에서는 BuildGraph 스크립트에 커스텀 명령줄 옵션을 전달하는 기능이 지원됩니다. XML 스크립트에서 커스텀 옵션을 정의하려면 다음을 사용합니다.
<Option Name="NAME" Restrict="REGEX" DefaultValue="DEF_VAL" Description="DESCRIPTION"/>
옵션의 컴포넌트는 다음과 같습니다.
Name
: 명령줄에서 레퍼런스할 옵션의 이름입니다.Restrict
: 허용되는 값을 제한하는 정규식입니다.DefaultValue
: 제공된 값이 없는 경우 옵션의 디폴트 값입니다.Description
: 사용 방법을 포함하여 이 옵션에 대한 설명입니다.
이제 다음을 사용하여 명령줄에서 스크립트로 옵션을 전달할 수 있습니다.
-Set:<OPTION_NAME>=<OPTION_VALUE>
예시
XML 스크립트에 정의된 옵션의 예시는 다음과 같습니다.
<Option Name="MyBooleanOption" Restrict="true|false" DefaultValue="false" Description="A boolean option for my BuildGraph script."/>
그리고 명령줄에서 스크립트로 이 옵션을 전달하는 방법은 다음과 같습니다.
-Set:MyBooleanOption=true
참고 자료
이 표에는 명령줄에서 다음과 같이 실행할 때 BuildGraph에 사용할 수 있는 명령줄 실행인자 목록이 포함되어 있습니다.
./RunUAT.bat BuildGraph [ARGUMENTS]
실행인자 | 설명 |
---|---|
-Script=<FILE_NAME> |
그래프를 설명하는 스크립트의 경로입니다. |
-Target=<NAME> |
빌드할 노드 또는 출력 태그의 이름입니다. |
-Schema |
디폴트 위치에 스키마를 생성합니다. |
-Schema=<FILE_NAME> |
모든 알려진 작업을 포함하여 유효한 스크립트 문서를 설명하는 스키마를 생성합니다. |
-ImportSchema=<FILE_NAME> |
기존 스키마 파일에서 스키마를 임포트합니다. |
-Set:<PROPERTY>=<VALUE> |
명명된 PROPERTY 를 지정된 VALUE 로 설정합니다. |
-Branch=<VALUE> |
현재 분기의 자동 탐지를 오버라이드합니다. |
-Clean |
실행 전 완료된 빌드 노드의 모든 캐시된 상태를 정리합니다. |
-CleanNode=<NAME>[+<NAME>...] |
실행 전 지정된 노드를 정리합니다. |
-Resume |
성공적으로 완료된 마지막 노드에서 로컬 빌드를 재개합니다. |
-ListOnly |
사전 처리된 그래프의 콘텐츠를 표시하지만, 이를 실행하지는 않습니다. |
-ShowDiagnostics |
-ListOnly 로 실행하면 그래프를 파싱할 때 표시할 진단 메시지가 입력됩니다. |
-ShowDeps |
그래프 출력에 노드 종속성을 표시합니다. |
-ShowNotifications |
출력에 각 노드에 전송되는 알림을 표시합니다. |
-Trigger=<NAME> |
지정된 트리거 뒤에 있는 노드만 실행합니다. |
-SkipTrigger=<NAME>[+<NAME>...] |
그래프에서 뒤에 있는 모든 노드를 포함하여 지정된 트리거를 건너뜁니다. |
-SkipTriggers |
모든 트리거를 건너뜁니다. |
-TokenSignature=<NAME> |
토큰을 사용해야 하는 모드에 대해 토큰에 쓸 현재 작업을 식별하는 시그니처를 제공합니다. 이 파라미터를 지정하지 않으면 토큰이 무시됩니다. |
-SkipTargetsWithoutTokens |
실패하는 대신 토큰을 얻을 수 없는 타깃을 제외합니다. |
-Preprocess=<FILE_NAME> |
사전 처리된 그래프를 제공된 파일에 씁니다. |
-Export=<FILE_NAME> |
빌드 시스템의 일부로 사용할 사전 처리된 빌드 그래프가 포함된 JSON 파일을 익스포트합니다. |
-HordeExport=<FILE_NAME> |
호드에 사용할 전체 빌드 그래프가 포함된 JSON 파일을 익스포트합니다. |
-PublicTasksOnly |
스키마에 기본 작업만 포함하고 다른 UAT 모듈은 제외합니다. |
-SharedStorageDir=<DIR_NAME> |
빌드 팜에서 에이전트 간에 빌드 결과물을 전송하는 데 사용할 디렉터리를 설정합니다. |
-SingleNode=<NAME> |
지정된 노드만 실행합니다. -Export 로 실행한 후 빌드 시스템에서 사용됩니다. |
-WriteToSharedStorage |
공유 스토리지에 쓰기를 허용합니다. 설정되지 않았지만 -SharedStorageDir 이 지정된 경우 빌드 결과물 읽기만 수행되고 쓰기는 수행되지 않습니다. |