라벨

문제 신고 소스 보기

빌드 대상 식별자입니다.

구성원

라벨

Label Label(input)

호출하는 .bzl 소스 파일이 있는 패키지의 컨텍스트에서 라벨 문자열을 Label 객체로 변환합니다. 지정된 값이 이미 Label이면 변경되지 않은 상태로 반환됩니다.

매크로의 경우 관련 함수 native.package_relative_label()는 현재 구성 중인 패키지의 컨텍스트에서 입력을 Label로 변환합니다. 이 함수를 사용하면 라벨 값 규칙 속성에 의해 자동으로 수행되는 문자열-라벨 변환을 변환할 수 있습니다.

매개변수

매개변수 설명
input string; or Label, 필수
입력 라벨 문자열 또는 라벨 객체입니다. Label 객체가 전달되면 그대로 반환됩니다.

이름

string Label.name

패키지 내에 있는 이 라벨의 이름입니다. 예를 들면 다음과 같습니다.
Label("//pkg/foo:abc").name == "abc"

패키지

string Label.package

이 라벨의 패키지 부분입니다. 예를 들면 다음과 같습니다.
Label("//pkg/foo:abc").package == "pkg/foo"

상대

Label Label.relative(relName)

절대 (//로 시작)이거나 현재 패키지를 기준으로 한 라벨을 확인합니다. 이 라벨이 원격 저장소에 있는 경우 해당 저장소를 기준으로 인수가 확인됩니다. 인수에 저장소 이름이 포함되어 있으면 현재 라벨이 무시되고 인수가 그대로 반환됩니다. 단, 저장소 이름이 현재 저장소 매핑에 있으면 해당 이름이 다시 기록됩니다. 예약된 라벨도 그대로 반환됩니다.
예:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux")
Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux")
Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux")
Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public")
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")

전달된 저장소 매핑이 {'@other' : '@remapped'}이면 다음과 같은 재매핑이 발생합니다.

Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")

매개변수

매개변수 설명
relName 필수
이 라벨을 기준으로 확인할 라벨입니다.

작업공간_이름

string Label.workspace_name

이 라벨의 저장소 부분입니다. 예:
Label("@foo//bar:baz").workspace_name == "foo"

작업공간_루트

string Label.workspace_root

execroot를 기준으로 이 라벨의 작업공간에 대한 실행 루트를 반환합니다. 예를 들면 다음과 같습니다.
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"