네이티브

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
네이티브 규칙 및 기타 패키지 도우미 함수를 지원하는 내장 모듈입니다. 모든 네이티브 규칙은 이 모듈에서 함수로 표시됩니다(예: native.cc_library). 네이티브 모듈은 로드 단계에서만 사용할 수 있습니다 (즉, 규칙 구현이 아닌 매크로에만 사용 가능). 속성은 None 값을 무시하고 속성이 설정되지 않은 것처럼 취급합니다.
다음 함수도 사용할 수 있습니다.

회원

기존_규칙

unknown native.existing_rule(name)

이 스레드의 패키지에서 인스턴스화된 규칙의 속성을 설명하는 변경 불가능한 dict과 같은 객체를 반환하거나 그 이름의 규칙 인스턴스가 없는 경우 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를 반환합니다.

결과에는 문자로 구성된 개인 속성 및 표시할 수 없는 기존 속성 유형 몇 가지를 제외한 각 속성 항목이 포함됩니다. 또한 규칙에는 namekind 규칙의 인스턴스(예: 'cc_binary')가 포함됩니다.

결과 값은 다음과 같이 속성 값을 나타냅니다.

  • str, int, bool 유형의 속성은 그대로 표현됩니다.
  • 라벨은 동일한 패키지의 대상에 대해 ':foo' 형식의 문자열로, 다른 패키지의 대상에 대해 '//pkg:name' 형식으로 변환됩니다.
  • 목록은 튜플로 표현되며 dicts는 변경 가능한 새 dicts로 변환됩니다. 이러한 요소는 동일한 방식으로 반복적으로 변환됩니다.
  • select 값은 위에서 설명한 대로 콘텐츠가 변환된 상태로 반환됩니다.
  • 규칙 인스턴스화 중에 값이 지정되지 않았고 기본값이 계산된 속성은 결과에서 제외됩니다. (계산된 기본값은 분석 단계까지 계산할 수 없습니다.)

가능하면 이 함수를 사용하지 마세요. BUILD 파일이 불안정하고 순서에 종속됩니다. 또한 계산된 값이 기본값에 사용되는 경우와 ctx.attr.foo에 사용되는 규칙 간에 각각 다른 내부 규칙에서 두 가지 규칙 속성 값의 변환과 약간 다릅니다.

매개변수

매개변수 설명
name 필수 항목입니다.
대상의 이름입니다.

기존_규칙

unknown native.existing_rules()

지금까지 이 스레드의 패키지에서 인스턴스화된 규칙을 설명하는 변경 불가능한 dict과 같은 객체를 반환합니다. dict과 같은 객체의 각 항목은 규칙 인스턴스의 이름을 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 플래그가 설정된 경우 이 함수는 비용이 많이 들 수 있으며 특히 루프 내에서 호출되는 경우 그렇습니다.

Export_files

None native.exports_files(srcs, visibility=None, licenses=None)

이 패키지에 속한 파일 목록을 다른 패키지로 내보냅니다.

매개변수

매개변수 설명
srcs sequence of strings, 필수
내보낼 파일 목록입니다.
visibility sequence; or None; 기본값 = None
공개 상태 선언을 지정할 수 있습니다. 지정된 타겟에 파일이 표시됩니다. 공개 상태를 지정하지 않으면 파일이 모든 패키지에 표시됩니다.
licenses sequence of strings; or None; 기본값 = 없음
지정할 라이선스

지구본

sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)

Glob은 현재 패키지에 있는 모든 파일의 새로운 변경 가능하고 정렬된 정렬 목록을 반환합니다.
  • include의 패턴과 하나 이상 일치합니다.
  • exclude의 패턴과 일치하지 않습니다(기본값 []).
exclude_directories 인수가 사용 설정된 경우 (1로 설정됨) 유형 디렉터리 파일이 결과에서 생략됩니다 (기본값 1).

매개변수

매개변수 설명
include sequence of strings; default = []
포함할 glob 패턴 목록입니다.
exclude sequence of strings; default = []
제외할 glob 패턴 목록입니다.
exclude_directories default = 1
디렉터리를 제외할지 여부를 나타내는 플래그입니다.
allow_empty 기본값 = unbounded
glob 패턴이 아무것도 일치되지 않도록 허용하는지 여부 `allow_empty` 가 False인 경우 각 개별 포함 패턴은 무언가와 일치해야 하며 최종 결과는 비어있지 않아야 합니다 (`exclude` 패턴과의 일치 제외).

package_group

None native.package_group(name, packages=[], includes=[])

이 함수는 패키지 집합을 정의하고 그룹에 라벨을 할당합니다. 라벨은 visibility 속성에서 참조할 수 있습니다.

매개변수

매개변수 설명
name 필수
이 규칙의 고유한 이름입니다.
packages sequence of strings; default = []
이 그룹의 패키지가 완전히 열거되어 있습니다.
includes sequence of strings; 기본값 = []
여기에 포함된 다른 패키지 그룹.

package_name

string native.package_name()

평가 중인 패키지의 이름입니다. 예를 들어 BUILD 파일 some/package/BUILD에서 값은 some/package입니다. BUILD 파일이 .bzl 파일에 정의된 함수를 호출하면 package_name()이 호출자 BUILD 파일 패키지와 일치합니다. 이 함수는 지원 중단된 변수 PACKAGE_NAME와 동일합니다.

저장소_이름

string native.repository_name()

규칙 또는 빌드 확장 프로그램이 호출되는 저장소의 이름입니다. 예를 들어 WORKSPACE 스탠자 local_repository(name='local', path=...)에 의해 존재하도록 호출된 패키지는 @local로 설정됩니다. 기본 저장소의 패키지에서는 @로 설정됩니다. 이 함수는 지원 중단된 변수 REPOSITORY_NAME와 동일합니다.

하위 패키지

sequence native.subpackages(include, exclude=[], allow_empty=False)

파일 시스템 디렉터리 깊이와 관계없이 현재 패키지의 모든 직접 하위 패키지의 새로운 변경 가능한 목록을 반환합니다. 반환된 목록은 정렬되어 있고 현재 패키지를 기준으로 한 하위 패키지의 이름이 포함되어 있습니다. 이 함수를 직접 호출하는 대신 bazel_skylib.subpackages 모듈에서 메서드를 사용하는 것이 좋습니다.

매개변수

매개변수 설명
include sequence of strings, 필수
하위 패키지 스캔에 포함할 glob 패턴 목록입니다.
exclude sequence of strings; default = []
하위 패키지 스캔에서 제외할 glob 패턴 목록입니다.
allow_empty 기본값 = False
호출이 빈 목록을 반환하는 경우 실패할지 여부입니다. 기본적으로 빈 목록은 BUILD 파일에서 subpackages() 호출이 지나치게 많이 발생할 수 있음을 나타냅니다. true로 설정하면 이러한 경우에 함수가 실행됩니다.