언어:
페이지 정보
엔진 버전:
언리얼 엔진

BuildGraph 스크립트 엘리먼트

언리얼 엔진

BuildGraph 스크립트는 XML 로 작성합니다. 여기서는 BuildGraph 스크립트에서 찾을 수 있는 데이터 유형과 아울러 전체적인 구조체에 대해 알아봅니다.

엘리먼트

엘리먼트(element)는 그 안에 포함된 데이터의 설명으로, BuildGraph 스크립트의 기본 구성 요소 중 하나입니다. 다음 표는 메타데이터로 제공되는 항목으로, 빌드 시스템에서 실행할 때 익스포트되는 것입니다. 로컬에서 태스크를 실행할 때 BuildGraph 에 직접 사용되지는 않지만, [META] 태그가 붙습니다.

그래프 구조체

BuildGraph 스크립트는 보통 다음 엘리먼트로 정의됩니다:

  • <Node> 노드

  • <Aggregate> 어그리게이트

  • <Agent> 에이전트

  • <Trigger> 트리거

노드

<Node> 노드는 BuildGraph 의 가장 작은 실행 단위로, 입력과 출력 세트를 갖습니다. 각 <Node> 는 순서대로 실행되는 태스크 시퀀스로 이루어집니다.

어트리뷰트

유형

필수

설명

Name

Name

필수

노드 이름입니다.

Requires

Target List

옵션

다른 노드에서 만들어진 노드, 어그리게이트, 태그 붙은 파일 세트의 세미콜론 구분 목록으로, 이 노드의 실행에 필요합니다.

Produces

Tag List

옵션

이 노드가 다른 노드에 사용할 수 있도록 만든 태그 붙은 파일 세트를 세미콜론으로 구분한 것입니다.

After

Target List

옵션

이 노드가 다음에 실행시켜야 하는 노드 목록으로, 현재 대상의 일부인 경우에만 실행합니다 (아니면 무시합니다). 세미콜론으로 구분합니다.

NotifyOnWarnings

Boolean

옵션

false 면 이 노드는 경고시 알림 신호를 냅니다. 빌드 시스템에만 사용됩니다. 기본값은 true 입니다. [META]

If

Condition

옵션

평가할 조건입니다. 조건 평가가 true 로 나오지 않는 한 엘리먼트는 무시됩니다.

어그리게이트

<Aggregate> 는 다른 노드의 세트 (또는 생성된 태그 세트)에 대한 동의어로 사용될 수 있는 네임드 어그리게이트를 선언합니다.

어트리뷰트

유형

필수

설명

Name

Name

필수

어그리게이트 이름입니다.

Requires

Target List

필수

이 어그리게이트의 종속성 목록입니다. 노드, 태그 붙은 파일 세트, 에이전트 그룹이 될 수 있습니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

에이전트

<Agent> 는 (중간 디렉터리를 지우지 않고) 시퀀스로 실행될 노드의 에이전트 요건을 정의합니다. <Agent> 요건은 로컬에서 빌드할 때는 무시되지만, 반드시 지정해야 합니다.

어트리뷰트

유형

필수?

설명

Name

Name

필수

그룹 이름입니다.

Type

Identifier List

옵션

에이전트를 실행시킬 유형입니다. 이 스트링의 뜻은 호스트 빌드 시스템이 추론하며, 고유 의미를 갖지는 않습니다. [META]

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

트리거

<Trigger> 는 사용자 직접 개입으로만 실행시켜야 하는 그래프 부분에 대한 컨테이너 역할을 합니다. 트리거 이후 노드를 실행하려면, 명령줄에 -Trigger=<Name> 을 전달합니다.

어트리뷰트

유형

필수?

설명

Name

Name

필수

트리거 이름입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

프로퍼티 조작

BuildGraph 프로퍼티는 다음 엘리먼트로 변경할 수 있습니다:

  • <Property> 프로퍼티

  • <Option> 옵션

  • <EnvVar> 환경변수

프로퍼티

<Property> 는 프로퍼티의 값을 설정합니다. 외부 영역의 프로퍼티가 이미 같은 이름으로 선언된 경우, <Property> 로 덮어씁니다. 그렇지 않은 경우, 현재 영역에 새로운 프로퍼티를 선언합니다.

어트리뷰트

유형

필수?

설명

Name

Name

필수

설정할 프로퍼티 이름입니다.

Value

String

필수

프로퍼티에 대한 새 값입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

옵션

<Option> 은 명령줄에서 설정할 수 있는 사용자 옵션을 정의합니다. <Option> 은 전체 영역에서만 나타날 수 있습니다.

어트리뷰트

유형

필수?

설명

Name

Name

필수

옵션의 값으로 초기화시킬 옵션(과 프로퍼티) 이름입니다.

Description

String

필수

BuildGraph 에 -ListOnly 인수를 붙여 실행하면 표시되는 옵션에 대한 설명입니다.

Restrict

Regex

옵션

이 옵션의 유효 값에 일치하는 정규표현식입니다 (예: [a-zA-Z]+, true / false).

DefaultValue

String

필수

사용자가 명시적으로 설정하지 않은 경우의 옵션 기본값입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

환경변수

<EnvVar> 는 환경 변수의 내용( 또는 설정되지 않은 경우 공백 스트링)을 담는 프로퍼티를 선언합니다. <EnvVar> 는 전체 영역에서만 나타납니다.

어트리뷰트

유형

필수?

설명

Name

Name

필수

프로퍼티로 도입할 환경 변수 이름입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

흐름 제어

BuildGraph 스크립트의 흐름을 제어할 수 있는 엘리먼트는 다음과 같습니다:

  • <Include>

  • <Do>

  • <Switch>

  • <ForEach>

Include

<Include> 는 다른 BuildGraph 스크립트의 내용을 이 파일 안에 나타난 것처럼 처리합니다. <Include> 는 전체 영역에서만 나타날 수 있습니다.

어트리뷰트

유형

필수?

설명

Script

String

필수

포함시키고자 하는 스크립트로의 (현재 스크립트 기준 상대) 경로입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

Do

<Do> 는 엘리먼트 시퀀스를 그룹으로 묶어 조건이 true 로 평가되는 경우에만 처리합니다.

어트리뷰트

유형

필수?

설명

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

Switch

<Switch>C 의 switch 문과 비슷한데, 브랜치의 시퀀스에 있는 조건을 평가하고, true 로 평가되는 조건이 있는 첫 번째 문을 처리합니다.

예제 <Switch> 문:

<Switch>
    <Case If=X>
        <Elements go here>
    </Case>
    <Case If=Y>
        <Elements go here>
    </Case>
   <Default>
        <Elements go here>
   </Default>
</Switch>

어트리뷰트

유형

필수?

설명

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

ForEach

<ForEach> 는 엘리먼트의 본문을 목록 내 세미콜론으로 구분된 각 항목에 할당된 프로퍼티 값으로 확장시킵니다.

예제 <ForEach> 문:

<ForEach Name="Counter" Values="1;2;3;4;5">
    <Log Message="Counter=$(Counter)"/>
</ForEach>

어트리뷰트

유형

필수?

설명

Name

Name

필수

목록 내 각 값에 할당할 프로퍼티입니다.

Values

String List

필수

세미콜론으로 구분되는 값 목록입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

진단

BuildGraph 스크립트에 대한 진단을 할 수 있는 엘리먼트는 다음과 같습니다:

  • <Warning> 경고

  • <Error> 오류

경고

<Warning> 은 그래프 실행 전 경고 메시지를 출력합니다. <Warning> 은 노드, 에이전트, 트리거, 전체 영역에 포함시킬 수 있습니다. <Warning> 은 실행중인 대상으로 추려낸(trim down) 이후에도 그래프의 일부인 경우에만 출력을 제공할 것입니다.

어트리뷰트

유형

필수?

설명

Message

String

필수

로그에 출력할 텍스트입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.

오류

<Error> 는 오류 메시지를 출력합니다. <Error> 는 노드, 에이전트, 트리거, 전체 영역에 포함시킬 수 있습니다. <Error> 는 실행중인 대상으로 추려낸(trim down) 이후에도 그래프의 일부인 경우에만 출력을 제공할 것입니다.

어트리뷰트

유형

필수?

설명

Message

String

필수

로그에 출력할 텍스트입니다.

If

Condition

옵션

평가할 조건입니다. 조건이 true 로 평가되지 않는 한 엘리먼트는 무시됩니다.