속성

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
문제 신고 소스 보기

규칙 또는 측면의 속성 스키마를 정의하는 최상위 모듈입니다. 각 함수는 단일 속성의 스키마를 나타내는 객체를 반환합니다. 이러한 객체는 rule()aspect()attrs 사전 인수 값으로 사용됩니다.

속성 정의사용에 대한 자세한 내용은 규칙 페이지를 참조하세요.

회원

bool

Attribute attr.bool(default=False, doc='', mandatory=False)

불리언 속성에 대한 스키마를 생성합니다. 상응하는 ctx.attr 속성은 bool 유형입니다.

매개변수

매개변수 설명
default default = False
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.

int

Attribute attr.int(default=0, doc='', mandatory=False, values=[])

정수 속성의 스키마를 만듭니다. 값은 부호 있는 32비트 범위 내에 있어야 합니다. 상응하는 ctx.attr 속성은 int 유형입니다.

매개변수

매개변수 설명
default default = 0
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.
values sequence of ints; default = []
속성에 허용된 값의 목록입니다. 다른 값이 제공되면 오류가 발생합니다.

정수

Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc='')

정수 목록 속성의 스키마를 만듭니다. 각 요소는 서명된 32비트 범위 내에 있어야 합니다.

매개변수

매개변수 설명
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.
allow_empty default = True
속성을 비워 둘 수 있는 경우 true입니다.
default sequence of ints; default = []
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.

라벨

Attribute attr.label(default=None, doc='', executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[])

라벨 속성에 대한 스키마를 만듭니다. 이는 종속 항목 속성입니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공된 경우 라벨 생성자를 사용하여 변환됩니다. 라벨 경로의 상대적 부분 (이름이 변경될 수 있음)은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

분석 시 (규칙의 구현 함수 내에서) ctx.attr에서 속성 값을 가져올 때 라벨은 상응하는 Target로 대체됩니다. 이를 통해 현재 대상의 종속 항목 제공자에 액세스할 수 있습니다.

이러한 종류의 속성은 일반적인 소스 파일 외에도 도구를 참조하는 데 자주 사용됩니다(예: 컴파일러). 이러한 도구는 소스 파일과 마찬가지로 종속 항목으로 간주됩니다. 사용자가 BUILD 파일에서 규칙을 사용할 때마다 도구의 라벨을 지정하지 않도록 하려면 표준 도구의 라벨을 이 속성의 default 값으로 하드 코딩하면 됩니다. 사용자가 이 기본값을 재정의하지 못하게 하려면 밑줄로 시작하는 이름을 지정하여 속성을 비공개로 설정하면 됩니다. 자세한 내용은 규칙 페이지를 참조하세요.

매개변수

매개변수 설명
default Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None; default = None
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.문자열이나 Label 함수를 사용하여 기본값(예: attr.label(default = "//a:b"))을 지정하세요.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
executable default = False
종속 항목을 실행 가능하도록 설정해야 하는 경우 true입니다. 즉, 라벨은 실행 파일 또는 실행 파일을 출력하는 규칙을 참조해야 합니다. ctx.executable.<attribute_name>로 라벨에 액세스합니다.
allow_files bool; or sequence of strings; or None; 기본값 = None
타겟 File 허용 여부. True, False (기본값) 또는 허용되는 파일 확장자 목록 (예: [".cc", ".cpp"])일 수 있습니다.
allow_single_file default = None
라벨이 단일 파일과 일치해야 한다는 점을 제외하면 allow_files와 유사합니다. ctx.file.<attribute_name>를 통해 액세스합니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.
providers default = []
이 속성에 표시되는 종속 항목에 의해 지정되어야 하는 제공업체입니다.

이 인수의 형식은 provider()(또는 레거시 제공업체의 경우 문자열 이름)에서 반환된 *Info 객체인 제공업체 목록 목록입니다. 종속 항목은 하나 이상의 내부 목록에 언급된 모든 제공자를 반환해야 합니다. 편의상 이 인수는 단일 수준의 제공자 목록일 수도 있으며, 이 경우 요소는 하나의 요소와 함께 외부 목록에 래핑됩니다.

allow_rules sequence of strings; or None; default = None
허용되는 규칙 타겟 (클래스 이름) 이 기능은 지원 중단 (호환성을 위해서만 사용)되며 대신 제공업체를 사용합니다.
cfg default = None
속성의 구성입니다. 종속 항목이 execution platform에 관해 빌드되었음을 나타내는 "exec" 또는 target platform에 대해 종속 항목이 빌드됨을 나타내는 "target"일 수 있습니다. 차이점의 일반적인 예로는 target platformAndroid 또는 iOS인 반면 execution platformLinux, macOS 또는 Windows인 모바일 앱을 빌드할 때입니다. executable이 참인 경우 타겟 구성에서 실수로 호스트 도구가 빌드되지 않도록 하려면 이 매개변수가 필요합니다. "target"는 의미적 효과가 없으므로 executable이 False인 경우 이 인텐트가 의도를 명확하게 드러내지 않는 한 설정하지 마세요.
aspects sequence of Aspects; default = []
이 속성에 지정된 종속 항목에 적용해야 하는 측면

label_keyed_string_dict

Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

키가 있는 사전 및 값이 문자열인 사전을 보유하는 속성의 스키마를 만듭니다. 이는 종속 항목 속성입니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공된 경우 라벨 생성자를 사용하여 변환됩니다. 라벨 경로의 상대적 부분 (이름이 변경될 수 있음)은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

분석 시 (규칙의 구현 함수 내에서) ctx.attr에서 속성 값을 가져올 때 라벨은 상응하는 Target로 대체됩니다. 이를 통해 현재 대상의 종속 항목 제공자에 액세스할 수 있습니다.

매개변수

매개변수 설명
allow_empty default = True
속성을 비워 둘 수 있는 경우 true입니다.
default dict; or function; default = {}
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.문자열이나 Label 함수를 사용하여 기본값(예: attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}))을 지정하세요.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
allow_files bool; or sequence of strings; or None; 기본값 = None
타겟 File 허용 여부. True, False(기본값) 또는 허용되는 파일 확장자 목록 (예: [".cc", ".cpp"])일 수 있습니다.
allow_rules sequence of strings; or None; default = None
허용되는 규칙 타겟 (클래스 이름) 이 기능은 지원 중단 (호환성을 위해서만 사용)되며 대신 제공업체를 사용합니다.
providers default = []
이 속성에 표시되는 종속 항목에 의해 지정되어야 하는 제공업체입니다.

이 인수의 형식은 provider() (또는 레거시 제공업체의 경우 문자열 이름)에서 반환된 *Info 객체인 제공업체 목록 목록입니다. 종속 항목은 하나 이상의 내부 목록에 언급된 모든 제공자를 반환해야 합니다. 편의상 이 인수는 단일 수준의 제공자 목록일 수도 있으며, 이 경우 요소는 하나의 요소와 함께 외부 목록에 래핑됩니다.

flags sequence of strings; default = []
지원 중단되어 삭제될 예정입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.
cfg default = None
속성의 구성입니다. 종속 항목이 execution platform에 관해 빌드되었음을 나타내는 "exec" 또는 target platform에 대해 종속 항목이 빌드됨을 나타내는 "target"일 수 있습니다. 차이점의 일반적인 예로는 target platformAndroid 또는 iOS인 반면 execution platformLinux, macOS 또는 Windows인 모바일 앱을 빌드할 때입니다.
aspects sequence of Aspects; default = []
이 속성에 지정된 종속 항목에 적용해야 하는 측면

label_list

Attribute attr.label_list(allow_empty=True, *, default=[], doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

라벨 목록 속성에 대한 스키마를 만듭니다. 이는 종속 항목 속성입니다. 해당하는 ctx.attr 속성은 Target목록 유형입니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공된 경우 라벨 생성자를 사용하여 변환됩니다. 라벨 경로의 상대적 부분 (이름이 변경될 수 있음)은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

분석 시 (규칙의 구현 함수 내에서) ctx.attr에서 속성 값을 가져올 때 라벨은 상응하는 Target로 대체됩니다. 이를 통해 현재 대상의 종속 항목 제공자에 액세스할 수 있습니다.

매개변수

매개변수 설명
allow_empty default = True
속성을 비워 둘 수 있는 경우 true입니다.
default sequence of Labels; or function; default = []
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.문자열이나 Label 함수를 사용하여 기본값(예: attr.label_list(default = ["//a:b", "//a:c"]))을 지정하세요.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
allow_files bool; or sequence of strings; or None; 기본값 = None
타겟 File 허용 여부. True, False(기본값) 또는 허용되는 파일 확장자 목록 (예: [".cc", ".cpp"])일 수 있습니다.
allow_rules sequence of strings; or None; default = None
허용되는 규칙 타겟 (클래스 이름) 이 기능은 지원 중단 (호환성을 위해서만 사용)되며 대신 제공업체를 사용합니다.
providers default = []
이 속성에 표시되는 종속 항목에 의해 지정되어야 하는 제공업체입니다.

이 인수의 형식은 provider()(또는 레거시 제공업체의 경우 문자열 이름)에서 반환된 *Info 객체인 제공업체 목록 목록입니다. 종속 항목은 하나 이상의 내부 목록에 언급된 모든 제공자를 반환해야 합니다. 편의상 이 인수는 단일 수준의 제공자 목록일 수도 있으며, 이 경우 요소는 하나의 요소와 함께 외부 목록에 래핑됩니다.

flags sequence of strings; default = []
지원 중단되어 삭제될 예정입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.
cfg default = None
속성의 구성입니다. 종속 항목이 execution platform에 관해 빌드되었음을 나타내는 "exec" 또는 target platform에 대해 종속 항목이 빌드됨을 나타내는 "target"일 수 있습니다. 차이점의 일반적인 예로는 target platformAndroid 또는 iOS인 반면 execution platformLinux, macOS 또는 Windows인 모바일 앱을 빌드할 때입니다.
aspects sequence of Aspects; default = []
이 속성에 지정된 종속 항목에 적용해야 하는 측면

출력

Attribute attr.output(doc='', mandatory=False)

출력 (라벨) 속성에 대한 스키마를 만듭니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공된 경우 라벨 생성자를 사용하여 변환됩니다. 라벨 경로의 상대적 부분 (이름이 변경될 수 있음)은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

분석 시 ctx.outputs를 사용하여 상응하는 File를 가져올 수 있습니다.

매개변수

매개변수 설명
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.

출력_목록

Attribute attr.output_list(allow_empty=True, *, doc='', mandatory=False)

출력 목록 속성에 대한 스키마를 만듭니다.

이 속성에는 고유한 Label 값이 포함되어 있습니다. Label 대신 문자열이 제공된 경우 라벨 생성자를 사용하여 변환됩니다. 라벨 경로의 상대적 부분 (이름이 변경될 수 있음)은 인스턴스화된 대상의 패키지와 관련하여 확인됩니다.

분석 시 ctx.outputs를 사용하여 상응하는 File를 가져올 수 있습니다.

매개변수

매개변수 설명
allow_empty default = True
속성을 비워 둘 수 있는 경우 true입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.

문자열

Attribute attr.string(default='', doc='', mandatory=False, values=[])

string 속성의 스키마를 만듭니다.

매개변수

매개변수 설명
default string; or NativeComputedDefault; default = ''
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.
values sequence of strings; default = []
속성에 허용된 값의 목록입니다. 다른 값이 제공되면 오류가 발생합니다.

문자열_dict

Attribute attr.string_dict(allow_empty=True, *, default={}, doc='', mandatory=False)

키 및 값이 문자열인 사전을 보유하는 속성의 스키마를 만듭니다.

매개변수

매개변수 설명
allow_empty default = True
속성을 비워 둘 수 있는 경우 true입니다.
default default = {}
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.

문자열_목록

Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc='')

문자열 목록 속성에 대한 스키마를 만듭니다.

매개변수

매개변수 설명
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.
allow_empty default = True
속성을 비워 둘 수 있는 경우 true입니다.
default sequence of strings; or NativeComputedDefault; default = []
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.

문자열_목록

Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc='', mandatory=False)

키가 문자열이고 값이 문자열 목록인 사전을 보유하는 속성의 스키마를 만듭니다.

매개변수

매개변수 설명
allow_empty default = True
속성을 비워 둘 수 있는 경우 true입니다.
default default = {}
규칙을 인스턴스화할 때 이 속성에 값이 지정되지 않은 경우 사용할 기본값입니다.
doc default = ''
도구를 생성하는 문서에서 추출할 수 있는 속성에 대한 설명입니다.
mandatory default = False
true인 경우 default가 있더라도 값을 명시적으로 지정해야 합니다.