BUILD 파일에서 사용할 수 있는 메서드입니다. BUILD 파일에서도 사용할 수 있는 추가 함수 및 빌드 규칙은 빌드 백과사전을 참고하세요.
회원
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package
- package_default_visibility
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- select
- 하위 패키지
deps
depset depset(direct=None, order="default", *, transitive=None)
direct
매개변수는 depset의 직접 요소 목록이고 transitive
매개변수는 요소가 생성된 depset의 간접 요소가 되는 depset 목록입니다. deps를 목록으로 변환할 때 요소가 반환되는 순서는 order
매개변수로 지정됩니다. 자세한 내용은 Depsets 개요를 참고하세요.
deps의 모든 요소 (직접 및 간접)는 type(x)
표현식으로 획득한 것과 동일한 유형이어야 합니다.
해시 기반 세트는 반복 중에 중복을 제거하는 데 사용되므로 depset의 모든 요소는 해시 가능해야 합니다. 하지만 이 불변량은 현재 모든 생성자에서 일관되게 확인되지 않습니다. --incompatible_always_check_depset_elements 플래그를 사용하여 일관된 검사를 사용 설정하세요. 이는 향후 버전의 기본 동작이 될 것입니다. 문제 10313을 참고하세요.
또한 요소는 현재 변경할 수 없지만 향후에는 이 제한이 완화될 예정입니다.
생성된 depset의 순서는 transitive
depset의 순서와 호환되어야 합니다. "default"
순서는 다른 모든 순서와 호환되며 다른 모든 순서는 자체적으로만 호환됩니다.
매개변수
매개변수 | 설명 |
---|---|
direct
|
sequence 또는 None . 기본값은 None 입니다. deps의 direct 요소 목록입니다. |
order
|
string;
default is "default" 새 depset의 순회 전략입니다. 가능한 값은 여기를 참고하세요. |
transitive
|
depset의 시퀀스 또는 None 입니다. 기본값은 None 입니다. 요소가 depset의 간접 요소가 되는 depset 목록입니다. |
existing_rule
unknown existing_rule(name)
None
을 반환합니다.여기서 변경 불가능한 dict와 유사한 객체는 dict와 유사한 반복, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
, x.values()
을 지원하는 깊이 변경 불가능한 객체 x
를 의미합니다.
결과에는 비공개 속성 (이름이 문자로 시작하지 않음)과 몇 가지 표현할 수 없는 기존 속성 유형을 제외한 각 속성의 항목이 포함됩니다. 또한 사전에는 규칙 인스턴스의 name
및 kind
(예: 'cc_binary'
) 항목이 포함됩니다.
결과 값은 다음과 같이 속성 값을 나타냅니다.
- str, int, bool 유형의 속성은 그대로 표시됩니다.
- 라벨은 동일한 패키지의 타겟의 경우
':foo'
형식의 문자열로, 다른 패키지의 타겟의 경우'//pkg:name'
형식의 문자열로 변환됩니다. - 목록은 튜플로 표시되고 dict는 변경 가능한 새 dict로 변환됩니다. 요소는 동일한 방식으로 재귀적으로 변환됩니다.
select
값은 위에서 설명한 대로 변환된 콘텐츠와 함께 반환됩니다.- 규칙 인스턴스화 중에 값이 지정되지 않았고 기본값이 계산된 속성은 결과에서 제외됩니다. (계산된 기본값은 분석 단계가 끝날 때까지 계산할 수 없습니다.)
가능한 경우 규칙 종료자 기호 매크로의 구현 함수에서만 이 함수를 사용하세요. 다른 컨텍스트에서 이 함수를 사용하는 것은 권장되지 않으며 향후 Bazel 출시에서 사용 중지됩니다. 이렇게 하면 BUILD
파일이 취약해지고 순서에 따라 달라집니다. 또한 내부 형식에서 Starlark로의 규칙 속성 값 변환은 계산된 기본값에 사용되는 변환과 ctx.attr.foo
에 사용되는 변환의 두 가지가 있으며, 이 변환과 미묘한 차이가 있습니다.
매개변수
매개변수 | 설명 |
---|---|
name
|
string;
required 타겟의 이름입니다. |
existing_rules
unknown existing_rules()
existing_rule(name)
에서 반환되는 결과에 매핑합니다.여기서 변경 불가능한 dict와 유사한 객체는 dict와 유사한 반복, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
, x.values()
을 지원하는 깊이 변경 불가능한 객체 x
를 의미합니다.
가능한 경우 규칙 종료자 기호 매크로의 구현 함수에서만 이 함수를 사용하세요. 다른 컨텍스트에서 이 함수를 사용하는 것은 권장되지 않으며 향후 Bazel 출시에서 사용 중지됩니다. 이렇게 하면 BUILD
파일이 취약해지고 순서에 따라 달라집니다.
exports_files
None
exports_files(srcs, visibility=None, licenses=None)
매개변수
매개변수 | 설명 |
---|---|
srcs
|
string의 sequence입니다. 필수입니다. 내보낼 파일 목록입니다. |
visibility
|
sequence 또는 None . 기본값은 None 입니다. 표시 유형 선언을 지정할 수 있습니다. 파일이 지정된 대상에 표시됩니다. 공개 상태를 지정하지 않으면 모든 패키지에서 파일을 볼 수 있습니다. |
licenses
|
string의 sequence 또는 None . 기본값은 None 입니다. 지정할 라이선스입니다. |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
include
의 패턴 중 하나 이상과 일치합니다.exclude
(기본값[]
)의 패턴과 일치하지 않습니다.
exclude_directories
인수가 사용 설정된 경우 (1
로 설정) 디렉터리 유형의 파일이 결과에서 생략됩니다 (기본값 1
).
매개변수
매개변수 | 설명 |
---|---|
include
|
string의 sequence. 기본값은 [] 입니다. 포함할 glob 패턴 목록입니다. |
exclude
|
string의 sequence;
기본값은 [] 입니다. 제외할 glob 패턴 목록입니다. |
exclude_directories
|
int;
default is 1 디렉터리를 제외할지 여부를 나타내는 플래그입니다. |
allow_empty
|
기본값은 unbound 입니다. 글로브 패턴이 아무것도 일치하도록 허용할지 여부입니다. `allow_empty` 가 False인 경우 각 개별 포함 패턴이 무언가와 일치해야 하며 최종 결과도 비어 있지 않아야 합니다 (`exclude` 패턴의 일치 항목이 제외된 후). |
module_name
string module_name()
module_ctx.modules
에 표시된 module.name
필드와 동일합니다.
None
을 반환할 수 있습니다.
module_version
string module_version()
module_ctx.modules
에 표시된 module.version
필드와 동일합니다.
None
을 반환할 수 있습니다.
패키지
unknown package(**kwargs)
load()
문구 바로 뒤에 BUILD 파일에서 첫 번째 호출이어야 합니다.
매개변수
매개변수 | 설명 |
---|---|
kwargs
|
필수 해당 인수는 빌드 백과사전의 package() 함수를 참고하세요.
|
package_default_visibility
List package_default_visibility()
package()
의 default_visibility
매개변수 값입니다.
package_group
None
package_group(name, packages=[], includes=[])
visibility
속성에서 참조할 수 있습니다.
매개변수
매개변수 | 설명 |
---|---|
name
|
string;
required 이 규칙의 고유 이름입니다. |
packages
|
string의 sequence입니다. 기본값은 [] 입니다. 이 그룹에 있는 패키지의 전체 열거입니다. |
includes
|
string의 시퀀스. 기본값은 [] 입니다. 이 패키지에 포함된 다른 패키지 그룹입니다. |
package_name
string package_name()
some/package/BUILD
에서 값은 some/package
입니다. BUILD 파일이 .bzl 파일에 정의된 함수를 호출하면 package_name()
이 호출자 BUILD 파일 패키지와 일치합니다. 값은 항상 루트 패키지의 빈 문자열입니다.
package_relative_label
Label package_relative_label(input)
BUILD
파일)의 컨텍스트에서 입력 문자열을 Label 객체로 변환합니다. 입력이 이미 Label
인 경우 변경되지 않고 반환됩니다.이 함수는 BUILD 파일과 직접 또는 간접적으로 호출하는 매크로를 평가하는 동안에만 호출할 수 있으며, 규칙 구현 함수에서는 호출할 수 없습니다.
이 함수의 결과는 지정된 문자열을 BUILD 파일에 선언된 타겟의 라벨 값 속성에 전달하여 생성되는 것과 동일한 Label
값입니다.
사용 참고사항: 이 함수와 Label()의 차이점은 Label()
이 BUILD
파일의 패키지가 아닌 이를 호출한 .bzl
파일의 패키지 컨텍스트를 사용한다는 것입니다. 컴파일러와 같이 매크로에 하드 코딩된 고정 타겟을 참조해야 하는 경우 Label()
를 사용합니다. BUILD 파일에서 제공된 라벨 문자열을 Label
객체로 정규화해야 하는 경우 package_relative_label()
를 사용합니다. BUILD 파일이나 호출 .bzl 파일을 제외한 패키지 컨텍스트에서 문자열을 Label
로 변환할 방법은 없습니다. 따라서 외부 매크로는 항상 라벨 문자열이 아닌 Label 객체를 내부 매크로에 전달하는 것을 선호해야 합니다.
매개변수
매개변수 | 설명 |
---|---|
input
|
string 또는 Label;
필수 입력 라벨 문자열 또는 Label 객체입니다. Label 객체가 전달되면 그대로 반환됩니다. |
repo_name
string repo_name()
repository_name
string repository_name()
--+incompatible_enable_deprecated_label_apis
지원 중단됨을 설정하여 실험적으로 사용 설정할 수 있습니다.
repo_name
을 대신 사용하는 것이 좋습니다. 이 버전에는 잘못된 선행 @ 기호가 포함되어 있지 않지만 다른 동작은 동일합니다.현재 평가 중인 패키지가 포함된 저장소의 표준 이름으로, 단일 @ 기호 (@
)가 앞에 붙습니다. 예를 들어 WORKSPACE 스탠자 local_repository(name='local', path=...)
에 의해 호출되는 패키지에서는 @local
로 설정됩니다. 기본 저장소의 패키지에서는 @
로 설정됩니다.
select
unknown select(x, no_match_error='')
select()
는 규칙 속성을 구성 가능하게 만드는 도우미 함수입니다. 자세한 내용은 백과사전 빌드를 참고하세요.
매개변수
매개변수 | 설명 |
---|---|
x
|
dict;
required 구성 조건을 값에 매핑하는 사전입니다. 각 키는 config_setting 또는 constraint_value 인스턴스를 식별하는 라벨 또는 라벨 문자열입니다. 문자열 대신 라벨을 사용해야 하는 경우는 매크로에 관한 문서를 참고하세요. |
no_match_error
|
string;
default is '' 조건이 일치하지 않는 경우 보고할 선택적 맞춤 오류입니다. |
하위 패키지
sequence subpackages(include, exclude=[], allow_empty=False)
매개변수
매개변수 | 설명 |
---|---|
include
|
string의 sequence입니다. 필수 항목입니다. 하위 패키지 스캔에 포함할 glob 패턴 목록입니다. |
exclude
|
string의 sequence. 기본값은 [] 입니다. 하위 패키지 스캔에서 제외할 glob 패턴 목록입니다. |
allow_empty
|
bool;
default is False 호출에서 빈 목록을 반환하는 경우 실패할지 여부입니다. 기본적으로 빈 목록은 subpackages() 호출이 불필요한 BUILD 파일에 잠재적 오류가 있음을 나타냅니다. true로 설정하면 이 경우 함수가 성공할 수 있습니다. |