회원
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- select
- subpackages
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값은 위에서 설명한 대로 변환된 콘텐츠와 함께 반환됩니다.- 규칙 인스턴스화 중에 값이 지정되지 않았고 기본값이 계산된 속성은 결과에서 제외됩니다. (계산된 기본값은 분석 단계가 끝날 때까지 계산할 수 없습니다.)
가능하면 이 함수를 사용하지 마세요. 이렇게 하면 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를 의미합니다.
참고: 가능하면 이 함수를 사용하지 마세요. 이렇게 하면 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_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;
required 입력 라벨 문자열 또는 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
|
문자열의 시퀀스입니다. 필수 항목입니다. 하위 패키지 스캔에 포함할 glob 패턴 목록입니다. |
exclude
|
string의 sequence. 기본값은 []입니다. 하위 패키지 스캔에서 제외할 glob 패턴 목록입니다. |
allow_empty
|
bool;
default is False호출에서 빈 목록을 반환하는 경우 실패할지 여부입니다. 기본적으로 빈 목록은 subpackages() 호출이 불필요한 BUILD 파일에 잠재적인 오류가 있음을 나타냅니다. true로 설정하면 이 경우 함수가 성공할 수 있습니다. |