cc_common

문제 신고 소스 보기 나이틀리 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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=[], quote_includes=[], system_includes=[], framework_includes=[], defines=[], local_defines=[], include_prefix='', strip_include_prefix='', user_compile_flags=[], conly_flags=[], cxx_flags=[], compilation_contexts=[], 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와 함께 전달됩니다. 종속 항목에 전이적으로 전파됩니다.
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 []
컴파일 옵션의 추가 목록입니다.
conly_flags sequence; default is []
C 컴파일을 위한 추가 컴파일 옵션 목록입니다.
cxx_flags sequence; default is []
C++ 컴파일을 위한 추가 컴파일 옵션 목록입니다.
compilation_contexts sequence; default is []
Headers from dependencies used for compilation.
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=None, cc_toolchain, language=None, requested_features=[], unsupported_features=[])

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

매개변수

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

create_cc_toolchain_config_info

CcToolchainConfigInfo 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: 기능 이름입니다. 툴체인에 'feature' 섹션을 추가하고 BUILD 파일에 해당 문자열을 기능으로 추가하면 Bazel을 변경하지 않고 기능을 도입할 수 있습니다.

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

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

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

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 문자열; required

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)` 에 플래그 값으로 노출됩니다. 컴파일러별 플래그가 필요한 타겟은 select() 문에서 https://github.com/bazelbuild/rules_cc/blob/main/cc/compiler/BUILD의 config_settings를 사용하거나 기존 설정이 충분하지 않은 경우 맞춤 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
입니다. 그림 객체 파일 목록입니다.

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 정보; 필수
빌드 변수를 만드는 cc_toolchain입니다.
feature_configuration FeatureConfiguration; required
쿼리할 기능 구성입니다.
source_file 기본값은 None
입니다. 컴파일의 선택적 소스 파일입니다. cc_common.get_memory_inefficient_command_line에서 생성된 명령줄 끝에 추가하는 것보다 여기에 source_file을 전달하는 것이 좋습니다. 그러면 툴체인 작성자가 컴파일러 플래그를 적절하게 지정하고 배치할 수 있습니다.
output_file 기본값은 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 필수
actions 객체입니다.
feature_configuration 기본값은 None
feature_configuration입니다.
cc_toolchain 기본값은 사용할 CcToolchainInfo 제공업체인 None
입니다.
static_library 파일 또는 None. 기본값은 연결할 정적 라이브러리의 FileNone
입니다.
pic_static_library 파일 또는 None; 기본값은 연결할 pic 정적 라이브러리의 FileNone
입니다.
dynamic_library 파일 또는 None. 기본값은 연결할 동적 라이브러리의 FileNone
입니다. 런타임에 항상 사용되며 interface_library가 전달되지 않은 경우 연결에 사용됩니다.
interface_library 파일 또는 None; 기본값은 연결할 인터페이스 라이브러리의 FileNone
입니다.
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)

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

매개변수

매개변수 설명
정보; 필수
빌드 변수를 만드는 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 []
연결 작업의 추가 입력(예: 연결 스크립트)
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 {}
링크 생성 명령줄 시 도구 모음 구성에 전달할 추가 변수입니다.

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 []