cc_common

C++ 컴파일, 연결, 명령줄 생성을 위한 유틸리티입니다.

회원

action_is_enabled

bool cc_common.action_is_enabled(*, feature_configuration, action_name)

지정된 action_config가 기능 구성에서 사용 설정된 경우 True를 반환합니다.

매개변수

매개변수 설명
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
action_name string; required
Name of the action_config.

CcToolchainInfo

Provider cc_common.CcToolchainInfo

사용 중인 C++ 도구 모음에 관한 정보가 포함된 제공자를 가져오는 데 사용되는 키

compile

tuple cc_common.compile(*, actions, feature_configuration, cc_toolchain, srcs=[], public_hdrs=[], private_hdrs=[], includes=[], local_includes=[], quote_includes=[], system_includes=[], framework_includes=[], defines=[], local_defines=[], include_prefix='', strip_include_prefix='', user_compile_flags=[], conly_flags=[], cxx_flags=[], compilation_contexts=[], progress_message_prefix, name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[], module_interfaces=unbound)

C++ 컴파일에 사용해야 합니다. (CompilationContext, CcCompilationOutputs) 튜플을 반환합니다.

매개변수

매개변수 설명
actions actions; required
actions 객체.
feature_configuration FeatureConfiguration; required
feature_configuration to be queried.
cc_toolchain 정보; 필수
사용할 CcToolchainInfo 제공자입니다.
srcs sequence; default is []
컴파일할 소스 파일 목록입니다.
public_hdrs sequence; default is []
src 컴파일에 필요한 헤더 목록으로 종속 규칙에 의해 간접적으로 포함될 수 있습니다.
private_hdrs sequence; default is []
src 컴파일에 필요하고 종속 규칙에 포함되지 않는 헤더 목록입니다.
includes sequence 또는 depset 기본값은 []
입니다. 각괄호와 따옴표로 모두 참조되는 헤더 파일의 검색 경로입니다. 일반적으로 -I와 함께 전달됩니다. 종속 항목에 전이적으로 전파됩니다.
local_includes sequence 또는 depset 기본값은 []
입니다. 각괄호와 따옴표로 참조되는 헤더 파일의 검색 경로입니다. 일반적으로 -I와 함께 전달됩니다. 종속 항목에 전이적으로 전파되지 않습니다.
quote_includes sequence; default is []
따옴표로 참조된 헤더 파일의 검색 경로입니다(예: #include "foo/bar/header.h"). 실행 루트를 기준으로 하거나 절대 경로일 수 있습니다. 일반적으로 -iquote와 함께 전달됩니다. 종속 항목에 전이적으로 전파됩니다.
system_includes sequence; default is []
각진 괄호로 참조되는 헤더 파일의 검색 경로입니다(예: #include <foo/bar/header.h>). 실행 루트를 기준으로 하는 상대 경로이거나 절대 경로일 수 있습니다. 일반적으로 -isystem과 함께 전달됩니다. 종속 항목에 전이적으로 전파됩니다.
framework_includes sequence; default is []
Apple 프레임워크의 헤더 파일 검색 경로입니다. 실행 루트를 기준으로 하거나 절대 경로일 수 있습니다. 일반적으로 -F와 함께 전달됩니다. 종속 항목에 전이적으로 전파됩니다.
defines sequence; default is []
이 타겟을 컴파일하는 데 필요한 정의 집합입니다. 각 정의는 문자열입니다. 종속 항목에 전이적으로 전파됩니다.
local_defines sequence; default is []
이 타겟을 컴파일하는 데 필요한 정의 집합입니다. 각 정의는 문자열입니다. 종속 항목에 전이적으로 전파되지 않습니다.
include_prefix string; default is ''
이 규칙의 헤더 경로에 추가할 접두사입니다. 설정되면 이 규칙의 hdrs 속성에 있는 헤더는 이 속성의 값이 저장소 상대 경로에 추가된 위치에서 액세스할 수 있습니다. strip_include_prefix 속성의 접두사는 이 접두사가 추가되기 전에 삭제됩니다.
strip_include_prefix string; default is ''
이 규칙의 헤더 경로에서 삭제할 접두사입니다. 설정되면 이 규칙의 hdrs 속성에 있는 헤더는 이 접두사가 잘린 경로에서 액세스할 수 있습니다. 상대 경로인 경우 패키지 상대 경로로 간주됩니다. 절대 경로인 경우 저장소 상대 경로로 이해됩니다. include_prefix 속성의 접두사는 이 접두사가 삭제된 후에 추가됩니다.
user_compile_flags sequence; default is []
Additional list of compilation options.
conly_flags sequence; default is []
C 컴파일을 위한 추가 컴파일 옵션 목록입니다.
cxx_flags sequence; default is []
C++ 컴파일을 위한 추가 컴파일 옵션 목록입니다.
compilation_contexts sequence; default is []
컴파일에 사용되는 종속 항목의 헤더입니다.
progress_message_prefix string 또는 None; required
로깅을 위한 작업을 식별하는 추가 문자열입니다.
name string; required
이 메서드로 생성된 작업의 출력 아티팩트 이름을 지정하는 데 사용됩니다. `main_output` 인수도 참고하세요.
disallow_pic_outputs bool; default is False
PIC 출력을 생성해야 하는지 여부입니다.
disallow_nopic_outputs bool; default is False
NOPIC 출력을 생성해야 하는지 여부입니다.
additional_inputs sequence; default is []
src 컴파일에 필요한 추가 파일 목록
module_interfaces sequence; default is unbound
컴파일할 모듈 인터페이스 소스 파일 목록입니다. 참고: 이 기능은 실험용이며 --experimental_cpp_modules로만 사용 설정됩니다.

configure_features

FeatureConfiguration cc_common.configure_features(*, ctx, cc_toolchain, language=None, requested_features=[], unsupported_features=[])

feature_configuration 인스턴스를 만듭니다. cpp 구성 프래그먼트가 필요합니다.

매개변수

매개변수 설명
ctx ctx; required
규칙 컨텍스트입니다.
cc_toolchain Info; required
기능을 구성하는 cc_toolchain입니다.
language string 또는 None. 기본값은 None입니다.
구성할 언어입니다. c++ 또는 objc (기본값 c++)
requested_features sequence; default is []
사용 설정할 기능 목록입니다.
unsupported_features sequence; default is []
현재 규칙에서 지원되지 않는 기능 목록입니다.

create_cc_toolchain_config_info

None cc_common.create_cc_toolchain_config_info(*, ctx, features=[], action_configs=[], artifact_name_patterns=[], cxx_builtin_include_directories=[], toolchain_identifier, host_system_name=None, target_system_name=None, target_cpu=None, target_libc=None, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None)

CcToolchainConfigInfo 제공자를 만듭니다.

매개변수

매개변수 설명
ctx ctx; required
규칙 컨텍스트입니다.
features sequence; default is []
하나의 기능에 대한 모든 플래그 사양을 포함합니다.

인수:

name: 기능의 이름입니다. 툴체인에 '기능' 섹션을 추가하고 BUILD 파일에 해당 문자열을 기능으로 추가하여 Bazel을 변경하지 않고 기능을 도입할 수 있습니다.

enabled: 'True'인 경우 규칙 유형에서 명시적으로 지원되지 않는다고 표시하지 않는 한 이 기능이 사용 설정됩니다.

flag_sets: FlagSet 목록입니다. 지정된 기능이 사용 설정된 경우 작업에 지정된 플래그 세트가 적용됩니다.

env_sets: EnvSet 목록입니다. 지정된 기능이 사용 설정된 경우 환경 설정이 지정된 작업에 적용됩니다.

requires: 이 기능이 도구 모음에 의해 지원되는 시점을 정의하는 기능 세트 목록입니다. 기능 집합이 완전히 적용되는 경우, 즉 기능 집합의 모든 기능이 사용 설정된 경우 기능이 지원됩니다. requires가 생략되면 다른 기능의 사용 설정 여부와 관계없이 기능이 지원됩니다. 예를 들어 사용 설정된 빌드 모드 (opt / fastbuild / dbg)에 따라 플래그를 필터링하는 데 사용합니다.

implies: 이 기능이 사용 설정될 때 자동으로 사용 설정되는 기능 또는 작업 구성의 문자열 목록입니다. 내포된 기능이나 작업 구성 중 하나라도 사용 설정할 수 없으면 이 기능도 (자동으로) 사용 설정되지 않습니다.

provides: 이 기능과 충돌하는 이름 목록입니다.

다음과 같은 경우 기능을 사용 설정할 수 없습니다.
- provides에 사용 설정하려는 다른 기능 또는 작업 구성의 이름이 포함되어 있습니다.
- provides에 사용 설정하려는 다른 기능 또는 작업 구성의 'provides'와 동일한 값이 포함되어 있습니다. 호환되지 않는 기능이 동시에 실수로 활성화되어 진단하기 어려운 컴파일러 오류가 발생하는 것을 방지하려면 이를 사용하세요.
action_configs sequence; default is []
작업 구성은 Bazel 작업에 해당하며 활성화된 기능을 기반으로 도구를 선택할 수 있습니다. 작업 구성 활성화는 기능과 동일한 시맨틱으로 발생합니다. 기능은 다른 기능과 마찬가지로 작업 구성을 '요구'하거나 '의미'할 수 있습니다.

인수:

action_name: 이 구성이 적용되는 Bazel 작업의 이름입니다(예: 'c-compile' 또는 'c-module-compile').

enabled: 'True'인 경우 규칙 유형에서 명시적으로 지원되지 않는 것으로 표시하지 않는 한 이 작업이 사용 설정됩니다.

tools: 작업에 적용되는 도구는 기능 구성과 일치하는 기능 세트가 있는 첫 번째 도구입니다. 제공된 기능 구성과 일치하는 도구가 없으면 오류가 발생하므로 빈 기능 세트가 있는 기본 도구를 제공하는 것이 좋습니다.

flag_sets: 지정된 작업 구성이 사용 설정된 경우 플래그 설정이 해당 작업에 적용됩니다.

implies: 이 작업 구성이 사용 설정될 때 자동으로 사용 설정되는 기능 또는 작업 구성 목록입니다. 내포된 기능이나 작업 구성 중 하나라도 사용 설정할 수 없으면 이 작업 구성도 (자동으로) 사용 설정되지 않습니다.

artifact_name_patterns sequence; default is []
작업에 대한 특정 카테고리의 입력 또는 출력 아티팩트의 아티팩트 이름입니다.

인수:

category_name: 이 선택이 적용되는 아티팩트의 카테고리입니다. 이 필드는 Bazel에 정의된 카테고리 목록과 비교됩니다. 카테고리 예로는 'linked_output' 또는 이 선택의 아티팩트가 있습니다. 확장 프로그램과 함께 타겟 이름을 기반으로 아티팩트 이름을 만드는 데 사용됩니다.

extension: 이 선택의 아티팩트를 만드는 확장 프로그램입니다. 타겟 이름을 기반으로 아티팩트 이름을 만드는 데 접두사와 함께 사용됩니다.

cxx_builtin_include_directories sequence; default is []

C++ 컴파일을 위한 기본 제공 포함 디렉터리입니다. 이 경로는 컴파일러에서 사용하는 정확한 경로여야 하며 일반적으로 실행 루트를 기준으로 합니다.

컴파일러에서 사용하는 경로는 'gcc -E -xc++ - -v'로 확인할 수 있습니다.

현재 C++ 경로도 C 컴파일에 사용하고 있으며, C++와 C 헤더 파일 간에 이름 충돌이 없는 한 안전합니다.

상대 경로는 구성 파일 디렉터리를 기준으로 확인됩니다.

컴파일러에 --sysroot 지원이 있는 경우 이러한 경로는 include 경로 대신 %sysroot% 를 사용해야 하며, 올바른 대체에 필요한 정보를 blaze에 제공하기 위해 sysroot 속성을 지정해야 합니다.

toolchain_identifier 문자열; 필수

crosstool 출시 내의 도구 모음의 고유 식별자입니다. 경로에서 디렉터리 이름으로 사용할 수 있어야 합니다.

다음 정규식과 일치해야 합니다. [a-zA-Z_][\.\- \w]*

host_system_name string 또는 None; 기본값은 None
입니다. 무시됩니다.
target_system_name string 또는 None; 기본값은 None
입니다. 지원 중단됨 GNU 시스템 이름입니다. 문자열은 CcToolchainInfo.target_gnu_system_name에 노출됩니다.
target_cpu string 또는 None. 기본값은 None
입니다. 지원 중단됨: 대신 CPU 기반 제약 조건을 사용하세요. 문자열이 'k8'이면 원시 FDO 프로필 데이터의 파일 이름에서 `target_cpu` 가 생략됩니다.
target_libc string 또는 None. 기본값은 None
입니다. 지원 중단됨: 대신 OS 기반 제약 조건을 사용하세요. libc 버전 문자열입니다 (예: 'glibc-2.2.2'). 문자열이 'macosx'인 경우 플랫폼은 MacOS로 간주됩니다. 그렇지 않으면 Linux입니다. 문자열이 CcToolchainInfo.libc에 노출됩니다.
compiler string; required
컴파일러 문자열 (예: 'gcc')입니다. 현재 도구 모음의 컴파일러는 `@bazel_tools//tools/cpp:compiler (compiler_flag)` 에 플래그 값으로 노출됩니다. 컴파일러별 플래그가 필요한 타겟은 https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD의 config_settings를 select() 문에서 사용하거나 기존 설정이 충분하지 않은 경우 맞춤 config_setting을 만들 수 있습니다.
abi_version string 또는 None; 기본값은 None
사용 중인 ABI(gcc 버전)입니다. 예: 'gcc-3.4' 문자열이 C++ 도구 모음 변수 ABI로 설정됩니다.
abi_libc_version string 또는 None. 기본값은 None
입니다. 사용 중인 ABI에서 사용하는 glibc 버전입니다. 문자열은 C++ 도구 모음 변수 ABI_LIBC_VERSION으로 설정됩니다.
tool_paths sequence; default is []
Tool locations.

인수:

name: 도구의 이름입니다.

path: 도구의 위치입니다. hermetic이 아닌 도구 체인의 경우 절대 경로일 수 있고 cc_toolchain 패키지에 상대적인 경로일 수도 있습니다.

make_variables sequence; default is []
규칙에서 액세스할 수 있는 make 변수입니다.
builtin_sysroot string 또는 None. 기본값은 None
입니다. 내장된 sysroot입니다. 이 속성이 없으면 Bazel은 --grte_top 옵션을 통해 다른 sysroot를 사용하는 것을 허용하지 않습니다.

create_compilation_context

CompilationContext cc_common.create_compilation_context(*, headers=unbound, system_includes=unbound, includes=unbound, quote_includes=unbound, framework_includes=unbound, defines=unbound, local_defines=unbound)

CompilationContext를 만듭니다.

매개변수

매개변수 설명
headers 기본값은 unbound
입니다. 이 타겟을 컴파일하는 데 필요한 헤더 세트
system_includes 기본값은 unbound
입니다. 각괄호로 참조되는 헤더 파일의 검색 경로 집합입니다(예: #include <foo/bar/header.h>). 실행 루트를 기준으로 하거나 절대 경로일 수 있습니다. 일반적으로 -isystem으로 전달됨
includes 기본값은 unbound
입니다. 각괄호와 따옴표로 모두 참조되는 헤더 파일의 검색 경로 집합입니다. 보통 -I와 함께 전달됩니다.
quote_includes 기본값은 unbound
입니다. 따옴표로 참조되는 헤더 파일의 검색 경로 집합입니다(예: #include "foo/bar/header.h"). 실행 루트를 기준으로 하거나 절대 경로일 수 있습니다. 일반적으로 -iquote와 함께 전달됩니다.
framework_includes 기본값은 unbound
입니다. 헤더 파일의 프레임워크 검색 경로 집합 (Apple 플랫폼만 해당)
defines 기본값은 unbound
입니다. 이 타겟을 컴파일하는 데 필요한 정의 집합입니다. 각 정의는 문자열입니다. 종속 항목에 전이적으로 전파됩니다.
local_defines 기본값은 unbound
입니다. 이 타겟을 컴파일하는 데 필요한 정의 집합입니다. 각 정의는 문자열입니다. 종속 항목에 전이적으로 전파되지 않습니다.

create_compilation_outputs

CcCompilationOutputs cc_common.create_compilation_outputs(*, objects=None, pic_objects=None)

컴파일 출력 객체를 만듭니다.

매개변수

매개변수 설명
objects depset 또는 None; 기본값은 None
객체 파일 목록입니다.
pic_objects depset 또는 None; 기본값은 None
pic 객체 파일 목록입니다.

create_compile_variables

Variables cc_common.create_compile_variables(*, cc_toolchain, feature_configuration, source_file=None, output_file=None, user_compile_flags=None, include_directories=None, quote_include_directories=None, system_include_directories=None, framework_include_directories=None, preprocessor_defines=None, thinlto_index=None, thinlto_input_bitcode_file=None, thinlto_output_object_file=None, use_pic=False, add_legacy_cxx_options=False, variables_extension=unbound)

컴파일 작업에 사용되는 변수를 반환합니다.

매개변수

매개변수 설명
cc_toolchain Info; required
빌드 변수를 생성하는 cc_toolchain입니다.
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
source_file 파일 또는 문자열 또는 None, 기본값은 None
입니다. 컴파일의 선택적 소스 파일 경로입니다. cc_common.get_memory_inefficient_command_line에서 생성된 명령줄 끝에 추가하는 것보다 여기에 source_file을 전달하는 것이 좋습니다. 그러면 툴체인 작성자가 컴파일러 플래그를 적절하게 지정하고 배치할 수 있습니다.
output_file 파일 또는 문자열 또는 None. 기본값은 None
입니다. 컴파일의 선택적 출력 파일 경로입니다. cc_common.get_memory_inefficient_command_line에서 생성된 명령줄 끝에 output_file을 추가하는 대신 여기에 전달하는 것이 좋습니다. 그러면 툴체인 작성자가 컴파일러 플래그를 적절하게 지정하고 배치할 수 있습니다.
user_compile_flags 문자열시퀀스 또는 None. 기본값은 None
입니다. 추가 컴파일 플래그 (copts) 목록입니다.
include_directories depset 또는 None; 기본값은 None
포함 디렉터리의 Depset입니다.
quote_include_directories depset 또는 None. 기본값은 None
입니다. 따옴표 포함 디렉터리의 Depset입니다.
system_include_directories depset 또는 None; 기본값은 None
시스템 포함 디렉터리의 Depset입니다.
framework_include_directories depset 또는 None. 기본값은 None
입니다. 프레임워크 포함 디렉터리의 Depset입니다.
preprocessor_defines depset 또는 None. 기본값은 None
입니다. 전처리기 정의의 Depset입니다.
thinlto_index string 또는 None. 기본값은 None
입니다. LTO 색인 파일 경로입니다.
thinlto_input_bitcode_file string 또는 None; 기본값은 None
LTO 백엔드에 입력되는 비트코드 파일입니다.
thinlto_output_object_file string 또는 None; 기본값은 None
LTO 백엔드에서 출력되는 객체 파일입니다.
use_pic bool; default is False
When true the compilation will generate position independent code.
add_legacy_cxx_options bool; default is False
사용되지 않습니다.
variables_extension dict; default is unbound
컴파일 작업에서 사용하는 추가 변수의 사전입니다.

LibraryToLink cc_common.create_library_to_link(*, actions, feature_configuration=None, cc_toolchain=None, static_library=None, pic_static_library=None, dynamic_library=None, interface_library=None, pic_objects=unbound, objects=unbound, alwayslink=False, dynamic_library_symlink_path='', interface_library_symlink_path='')

LibraryToLink 생성

매개변수

매개변수 설명
actions required
actions 객체.
feature_configuration 기본값은 None
feature_configuration입니다.
cc_toolchain 기본값은 None
사용할 CcToolchainInfo 제공자입니다.
static_library 파일 또는 None. 기본값은 연결할 정적 라이브러리의 FileNone
입니다.
pic_static_library 파일 또는 None. 기본값은 연결할 pic 정적 라이브러리의 None
File입니다.
dynamic_library 파일 또는 None. 기본값은 연결할 동적 라이브러리의 FileNone
입니다. 런타임에 항상 사용되며 interface_library가 전달되지 않은 경우 연결에 사용됩니다.
interface_library 파일 또는 None; 기본값은 None
연결할 인터페이스 라이브러리의 File입니다.
pic_objects Filesequence입니다. 기본값은 unbound
입니다. 실험적이므로 사용하지 마세요.
objects Filesequence입니다. 기본값은 unbound
입니다. 실험적이므로 사용하지 마세요.
bool; default is False
--whole_archive 블록에서 정적 라이브러리/객체를 연결할지 여부입니다.
string; default is ''
solib 디렉터리에서 동적 라이브러리 링크의 기본 경로를 재정의합니다. 기본값을 사용하려면 빈 문자열을 사용합니다.
string; default is ''
solib 디렉터리에서 인터페이스 라이브러리 링크의 기본 경로를 재정의합니다. 기본값을 사용하려면 빈 문자열을 사용합니다.

Variables cc_common.create_link_variables(*, cc_toolchain, feature_configuration, library_search_directories=[], runtime_library_search_directories=[], user_link_flags=[], output_file=None, param_file=None, is_using_linker=True, is_linking_dynamic_library=False, must_keep_debug=True, use_test_only_flags=False, is_static_linking_mode=True)

작업을 연결하는 데 사용되는 링크 변수를 반환합니다.

매개변수

매개변수 설명
Info; required
빌드 변수를 생성하는 cc_toolchain입니다.
FeatureConfiguration; required
쿼리할 기능 구성입니다.
depset; default is []
링커가 링크 시간에 라이브러리를 찾는 디렉터리의 Depset입니다.
depset; default is []
런타임에 로더가 라이브러리를 찾는 디렉터리의 Depset입니다.
sequence; default is []
추가 링크 플래그 목록 (linkopts)
기본값은 None
입니다. 선택적 출력 파일 경로입니다.
기본값은 None
입니다. 선택적 매개변수 파일 경로입니다.
bool; default is True
링커를 사용하는 경우 True, 아카이버를 사용하는 경우 False 호출자는 사용된 작업 이름과 동기화된 상태를 유지해야 합니다 (실행 파일 또는 동적 라이브러리 연결 시 is_using_linker = True, 정적 라이브러리 보관 시 is_using_linker = False).
bool; default is False
동적 라이브러리를 만들 때 true, 실행 파일 또는 정적 라이브러리일 때 false입니다. 호출자는 사용된 작업 이름과 동기화된 상태를 유지해야 합니다. 이 필드는 b/65151735가 수정되면 삭제됩니다.
bool; default is True
False로 설정하면 Bazel이 'strip_debug_symbols' 변수를 노출합니다. 이 변수는 일반적으로 링커를 사용하여 출력 파일에서 디버그 심볼을 삭제하는 데 사용됩니다.
bool; default is False
When set to true, 'is_cc_test' variable will be set.
bool; default is True
사용되지 않습니다.

create_linker_input

LinkerInput cc_common.create_linker_input(*, owner, libraries=None, user_link_flags=None, additional_inputs=None)

LinkerInput를 만듭니다.

매개변수

매개변수 설명
owner 라벨; 필수
이 입력에 사용된 모든 파일을 생성한 타겟의 라벨입니다.
libraries None 또는 depset 기본값은 None
LibraryToLink 목록입니다.
None 또는 stringdepset 또는 stringsequence. 기본값은 None
입니다. 문자열로 전달된 사용자 링크 플래그입니다. [String], [[String]] 또는 depset(String)을 허용합니다. 후자는 호환성 목적으로만 유지되므로 권장되지 않습니다. depset이 평면화됩니다. 사용자_link_flags를 플랫되지 않은 depsets()를 통해 전파하려면 끝까지 플랫되지 않도록 LinkerInput으로 래핑하세요.
additional_inputs None 또는 depset; 기본값은 None
연결 작업의 추가 입력(예: 연결 스크립트)

create_linking_context

LinkingContext cc_common.create_linking_context(*, linker_inputs)

LinkingContext를 만듭니다.

매개변수

매개변수 설명
linker_inputs depset; required
LinkerInput의 Depset입니다.

create_linking_context_from_compilation_outputs

tuple cc_common.create_linking_context_from_compilation_outputs(*, actions, name, feature_configuration, cc_toolchain, language='c++', disallow_static_libraries=False, disallow_dynamic_library=False, compilation_outputs, linking_contexts=[], user_link_flags=[], alwayslink=False, additional_inputs=[], variables_extension=unbound)

나중에 실행 파일이나 동적 라이브러리를 만들기 위해 전이적 연결을 실행하는 최상위 규칙에 의해 연결될 수 있도록 정보를 다운스트림으로 전파할 수 있는 라이브러리 규칙을 만드는 데 사용해야 합니다. (CcLinkingContext, CcLinkingOutputs) 튜플을 반환합니다.

매개변수

매개변수 설명
actions actions; required
actions 객체.
name string; required
이 메서드로 생성된 작업의 출력 아티팩트 이름을 지정하는 데 사용됩니다.
feature_configuration FeatureConfiguration; required
feature_configuration to be queried.
cc_toolchain 정보; 필수
사용할 CcToolchainInfo 제공자입니다.
language string; default is 'c++'
Only C++ supported for now. 이 파라미터를 사용하지 마세요.
disallow_static_libraries bool; default is False
정적 라이브러리를 생성해야 하는지 여부입니다.
disallow_dynamic_library bool; default is False
동적 라이브러리를 생성해야 하는지 여부입니다.
compilation_outputs CcCompilationOutputs; required
링크할 객체 파일이 포함된 컴파일 출력입니다.
linking_contexts sequence; default is []
Libraries from dependencies. 이러한 라이브러리는 바이너리든 라이브러리든 link() 호출의 출력 아티팩트에 연결됩니다.
sequence; default is []
Additional list of linking options.
bool; default is False
이 라이브러리가 항상 연결되어야 하는지 여부입니다.
additional_inputs sequence; default is []
For additional inputs to the linking action, e.g.: linking scripts.
variables_extension dict; default is unbound
링크 명령줄을 만들 때 도구 모음 구성에 전달할 추가 변수입니다.

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(*, objects={})

LTO 컴파일 컨텍스트 생성

매개변수

매개변수 설명
objects dict; default is {}
map of full object to index object

do_not_use_tools_cpp_compiler_present

None cc_common.do_not_use_tools_cpp_compiler_present

이 필드는 사용하지 마세요. config_setting.values{'compiler')에서 config_settings.flag_values{'@bazel_tools//tools/cpp:compiler'}로 이전하는 데만 사용됩니다.

get_environment_variables

dict cc_common.get_environment_variables(*, feature_configuration, action_name, variables)

지정된 작업에 설정할 환경 변수를 반환합니다.

매개변수

매개변수 설명
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
action_name string; required
작업의 이름입니다. @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)에 있는 이름 중 하나여야 합니다.
variables 변수; 필수
템플릿 확장에 사용할 빌드 변수입니다.

get_execution_requirements

sequence cc_common.get_execution_requirements(*, feature_configuration, action_name)

지정된 작업의 실행 요구사항을 반환합니다.

매개변수

매개변수 설명
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
action_name string; required
작업의 이름입니다. @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)에 있는 이름 중 하나여야 합니다.

get_memory_inefficient_command_line

sequence cc_common.get_memory_inefficient_command_line(*, feature_configuration, action_name, variables)

확장을 위해 지정된 변수를 사용하여 지정된 작업의 평면화된 명령줄 플래그를 반환합니다. 중첩된 집합을 평면화하며 사용하지 않는 것이 좋습니다. 최소한 분석을 초과해서는 안 됩니다. Args를 반환하는 메모리 효율적인 함수 작업이 진행 중입니다.

매개변수

매개변수 설명
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
action_name string; required
작업의 이름입니다. @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)에 있는 이름 중 하나여야 합니다.
variables 변수; 필수
템플릿 확장에 사용할 빌드 변수입니다.

get_tool_for_action

string cc_common.get_tool_for_action(*, feature_configuration, action_name)

지정된 작업의 도구 경로를 반환합니다.

매개변수

매개변수 설명
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
action_name string; required
작업의 이름입니다. @bazel_tools//tools/build_defs/cc:action_names.bzl (https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/cc/action_names.bzl)에 있는 이름 중 하나여야 합니다.

is_enabled

bool cc_common.is_enabled(*, feature_configuration, feature_name)

지정된 기능이 기능 구성에서 사용 설정된 경우 True를 반환합니다.

매개변수

매개변수 설명
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
feature_name string; required
기능의 이름입니다.

CcLinkingOutputs cc_common.link(*, actions, name, feature_configuration, cc_toolchain, language='c++', output_type='executable', link_deps_statically=True, compilation_outputs=None, linking_contexts=[], user_link_flags=[], stamp=0, additional_inputs=[], additional_outputs=[], variables_extension={})

C++ 트랜지티브 연결에 사용해야 합니다.

매개변수

매개변수 설명
actions actions; required
actions 객체.
name string; required
이 메서드로 생성된 작업의 출력 아티팩트 이름을 지정하는 데 사용됩니다.
feature_configuration FeatureConfiguration; required
feature_configuration to be queried.
cc_toolchain 정보; 필수
사용할 CcToolchainInfo 제공자입니다.
language string; default is 'c++'
Only C++ supported for now. 이 파라미터를 사용하지 마세요.
output_type string; default is 'executable'
'executable' 또는 'dynamic_library'일 수 있습니다.
bool; default is True
True to link dependencies statically, False dynamically.
compilation_outputs CcCompilationOutputs 또는 None; 기본값은 None
연결할 객체 파일이 포함된 컴파일 출력입니다.
linking_contexts sequence; default is []
이 규칙으로 생성된 연결 컨텍스트에 연결할 종속 항목의 컨텍스트를 연결합니다.
sequence; default is []
링커 옵션의 추가 목록입니다.
stamp int; default is 0
output_type이 'executable'인 경우 연결된 실행 파일에 빌드 정보를 포함할지 여부입니다. 1인 경우 빌드 정보가 항상 포함됩니다. 0인 경우 기본 빌드 정보가 항상 제외됩니다. -1인 경우 기본 동작을 사용합니다. 이는 --[no]stamp 플래그로 재정의될 수 있습니다. 테스트 규칙의 실행 파일 출력을 생성할 때는 설정 해제 (또는 0으로 설정)해야 합니다.
additional_inputs sequence 또는 depset. 기본값은 []
입니다. 연결 작업의 추가 입력(예: 연결 스크립트)
additional_outputs sequence; default is []
For additional outputs to the linking action, e.g.: map files.
variables_extension dict; default is {}
create link 명령줄 시 도구 모음 구성에 전달할 추가 변수입니다.

merge_cc_infos

unknown cc_common.merge_cc_infos(*, direct_cc_infos=[], cc_infos=[])

여러 CcInfo을 하나로 병합합니다.

매개변수

매개변수 설명
direct_cc_infos sequence; default is []
병합할 CcInfo 목록으로, 헤더는 반환된 제공자의 직접 필드에 의해 내보내집니다.
cc_infos sequence; default is []
병합할 CcInfo 목록으로, 헤더는 반환된 제공자의 직접 필드에 의해 내보내지지 않습니다.

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(*, compilation_contexts=[])

여러 CompilationContexts을 하나로 병합합니다.

매개변수

매개변수 설명
compilation_contexts sequence; default is []
병합할 CompilationContexts 목록입니다. 각 컨텍스트의 헤더는 반환된 제공자의 직접 필드에 의해 내보내집니다.

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(*, compilation_outputs=[])

컴파일 출력 병합

매개변수

매개변수 설명
compilation_outputs sequence; default is []