native.cc_library). 네이티브 모듈은 로드 단계에서만 사용할 수 있습니다 (즉, 규칙 구현이 아닌 매크로의 경우). 속성은 None 값을 무시하고 속성이 설정되지 않은 것처럼 처리합니다.다음 함수도 사용할 수 있습니다.
회원
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package_group
- package_name
- package_relative_label
- repository_name
- subpackages
existing_rule
unknown native.existing_rule(name)
None을 반환합니다.여기서 변경 불가능한 dict와 유사한 객체는 dict와 유사한 반복, len(x), name in x, x[name], x.get(name), x.items(), x.keys(), x.values()를 지원하는 깊이 변경 불가능한 객체 x를 의미합니다.
--noincompatible_existing_rules_immutable_view 플래그가 설정된 경우 대신 콘텐츠가 동일한 새 변경 가능한 dict를 반환합니다.
결과에는 비공개 속성 (이름이 문자로 시작하지 않음)과 몇 가지 표현할 수 없는 기존 속성 유형을 제외한 각 속성의 항목이 포함됩니다. 또한 dict에는 규칙 인스턴스의 name 및 kind (예: 'cc_binary') 항목이 포함됩니다.
결과의 값은 다음과 같이 속성 값을 나타냅니다.
- str, int, bool 유형의 속성은 있는 그대로 표현됩니다.
- 라벨은 동일한 패키지의 타겟에 대해
':foo'형식의 문자열로 변환되거나 다른 패키지의 타겟에 대해'//pkg:name'형식의 문자열로 변환됩니다. - 목록은 튜플로 표현되고 dict는 새로운 변경 가능한 dict로 변환됩니다. 요소는 동일한 방식으로 재귀적으로 변환됩니다.
select값은 위에 설명된 대로 변환된 콘텐츠와 함께 반환됩니다.- 규칙 인스턴스화 중에 값이 지정되지 않고 기본값이 계산되는 속성은 결과에서 제외됩니다. (계산된 기본값은 분석 단계가 끝날 때까지 계산할 수 없습니다.)
가능하면 이 함수를 사용하지 마세요. BUILD 파일을 취약하게 만들고 순서에 따라 달라지게 합니다. 또한 계산된 기본값에 사용되는 규칙 속성 값의 내부 형식에서 Starlark로의 다른 두 가지 변환과 ctx.attr.foo에 사용되는 변환과 약간 다르다는 점에 유의하세요.
매개변수
| 매개변수 | 설명 |
|---|---|
name
|
필수 타겟의 이름입니다. |
existing_rules
unknown native.existing_rules()
existing_rule(name)에서 반환되는 결과에 매핑합니다.여기서 변경 불가능한 dict와 유사한 객체는 dict와 유사한 반복, len(x), name in x, x[name], x.get(name), x.items(), x.keys(), x.values()를 지원하는 깊이 변경 불가능한 객체 x를 의미합니다.
--noincompatible_existing_rules_immutable_view 플래그가 설정된 경우 대신 콘텐츠가 동일한 새 변경 가능한 dict를 반환합니다.
참고: 가능하면 이 함수를 사용하지 마세요. BUILD 파일을 취약하게 만들고 순서에 따라 달라지게 합니다. 또한 --noincompatible_existing_rules_immutable_view 플래그가 설정된 경우 이 함수는 특히 루프 내에서 호출되는 경우 매우 비용이 많이 들 수 있습니다.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)매개변수
| 매개변수 | 설명 |
|---|---|
srcs
|
문자열 시퀀스,
필수 내보낼 파일 목록입니다. |
visibility
|
시퀀스 또는 None;
기본값은 None공개 상태 선언을 지정할 수 있습니다. 파일은 지정된 타겟에 표시됩니다. 공개 상태가 지정되지 않으면 파일은 모든 패키지에 표시됩니다. |
licenses
|
문자열 시퀀스 또는 None;
기본값은 None지정할 라이선스입니다. |
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
include에서 하나 이상의 패턴과 일치합니다.exclude(기본값[])의 패턴과 일치하지 않습니다.
exclude_directories 인수가 사용 설정된 경우 (1로 설정됨) 디렉터리 유형의 파일은 결과에서 생략됩니다 (기본값 1).
매개변수
| 매개변수 | 설명 |
|---|---|
include
|
문자열 시퀀스,
기본값은 []포함할 glob 패턴 목록입니다. |
exclude
|
문자열 시퀀스,
기본값은 []제외할 glob 패턴 목록입니다. |
exclude_directories
|
기본값은 1디렉터리를 제외할지 여부를 나타내는 플래그입니다. |
allow_empty
|
기본값은 unboundglob 패턴이 아무것도 일치시키지 않도록 허용할지 여부입니다. `allow_empty` 가 False인 경우 각 개별 포함 패턴은 무언가와 일치해야 하며 최종 결과도 비어 있지 않아야 합니다 (`exclude` 패턴의 일치 항목이 제외된 후). |
module_name
string native.module_name()
module_ctx.modules에 표시되는 module.name 필드와 동일합니다.
None을 반환할 수 있습니다.
module_version
string native.module_version()
module_ctx.modules에 표시되는 module.version 필드와 동일합니다.
None을 반환할 수 있습니다.
package_group
None native.package_group(name, packages=[], includes=[])visibility 속성에서 참조할 수 있습니다.
매개변수
| 매개변수 | 설명 |
|---|---|
name
|
필수 이 규칙의 고유한 이름입니다. |
packages
|
문자열 시퀀스,
기본값은 []이 그룹의 패키지 전체 열거입니다. |
includes
|
문자열 시퀀스,
기본값은 []이 그룹에 포함된 다른 패키지 그룹입니다. |
package_name
string native.package_name()
some/package/BUILD에서 값은 some/package입니다. BUILD 파일이 .bzl 파일에 정의된 함수를 호출하는 경우 package_name()은 호출자 BUILD 파일 패키지와 일치합니다. 이 함수는 지원 중단된 변수 PACKAGE_NAME과 동일합니다.
package_relative_label
Label native.package_relative_label(input)
BUILD 파일)의 컨텍스트에서 라벨 객체로 변환합니다. 입력이 이미 Label인 경우 변경되지 않은 상태로 반환됩니다.이 함수는 BUILD 파일과 직접 또는 간접적으로 호출하는 매크로를 평가하는 동안에만 호출할 수 있습니다. 규칙 구현 함수에서는 호출할 수 없습니다 (예:).
이 함수의 결과는 지정된 문자열을 BUILD 파일에 선언된 타겟의 라벨 값 속성에 전달하여 생성되는 것과 동일한 Label 값입니다.
사용 참고사항: 이 함수와 Label()의 차이점은 Label()이(가) BUILD 파일의 패키지가 아닌 호출한 .bzl 파일의 패키지 컨텍스트를 사용한다는 것입니다. 매크로에 하드 코딩된 고정 타겟을 참조해야 하는 경우 Label()을 사용합니다. BUILD 파일에서 제공한 라벨 문자열을 Label 객체로 정규화해야 하는 경우 package_relative_label()을 사용합니다. (BUILD 파일 또는 호출 .bzl 파일 이외의 패키지 컨텍스트에서 문자열을 Label로 변환할 방법은 없습니다. 따라서 외부 매크로는 항상 라벨 문자열이 아닌 라벨 객체를 내부 매크로에 전달하는 것이 좋습니다.)
매개변수
| 매개변수 | 설명 |
|---|---|
input
|
문자열 또는 라벨, 필수 입력 라벨 문자열 또는 라벨 객체입니다. 라벨 객체가 전달되면 있는 그대로 반환됩니다. |
repository_name
string native.repository_name()
local_repository(name='local', path=...)로 인해 호출되는 패키지에서 @local로 설정됩니다. 기본 저장소의 패키지에서 @로 설정됩니다. 이 함수는 지원 중단된 변수 REPOSITORY_NAME과 동일합니다.
subpackages
sequence native.subpackages(include, exclude=[], allow_empty=False)
매개변수
| 매개변수 | 설명 |
|---|---|
include
|
문자열 시퀀스,
필수 하위 패키지 스캔에 포함할 glob 패턴 목록입니다. |
exclude
|
문자열 시퀀스,
기본값은 []하위 패키지 스캔에서 제외할 glob 패턴 목록입니다. |
allow_empty
|
기본값은 False호출이 빈 목록을 반환하는 경우 실패할지 여부입니다. 기본적으로 빈 목록은 subpackages() 호출이 불필요한 BUILD 파일에서 잠재적 오류를 나타냅니다. true로 설정하면 이 함수가 이 경우에 성공할 수 있습니다. |