IMPORTANT: The Bazel docs have moved! Please update your bookmark to https://bazel.build/rules/lib/CcToolchainInfo
You can read about the migration, and let us know what you think.
Extensions >
API reference >
CcToolchainInfo
CcToolchainInfo
Information about the C++ compiler being used.Members
- all_files
- ar_executable
- built_in_include_directories
- compiler
- compiler_executable
- cpu
- dynamic_runtime_lib
- gcov_executable
- ld_executable
- libc
- needs_pic_for_dynamic_libraries
- nm_executable
- objcopy_executable
- objdump_executable
- preprocessor_executable
- static_runtime_lib
- strip_executable
- sysroot
- target_gnu_system_name
- to_json
- to_proto
all_files
depset CcToolchainInfo.all_filesReturns all toolchain files (so they can be passed to actions using this toolchain as inputs).
ar_executable
string CcToolchainInfo.ar_executableThe path to the ar binary.
built_in_include_directories
list CcToolchainInfo.built_in_include_directoriesReturns the list of built-in directories of the compiler.
compiler
string CcToolchainInfo.compilerC++ compiler. May return
None
.
compiler_executable
string CcToolchainInfo.compiler_executableThe path to the compiler binary.
cpu
string CcToolchainInfo.cpuTarget CPU of the C++ toolchain. May return
None
.
dynamic_runtime_lib
depset CcToolchainInfo.dynamic_runtime_lib(feature_configuration)Returns the files from `dynamic_runtime_lib` attribute (so they can be passed to actions using this toolchain as inputs). The caller can check whether the feature_configuration enables `static_link_cpp_runtimes` feature (if not, neither `static_runtime_lib` nor `dynamic_runtime_lib` have to be used), and use `static_runtime_lib` if static linking mode is active.
Parameters
Parameter | Description |
---|---|
feature_configuration
|
required Feature configuration to be queried. |
gcov_executable
string CcToolchainInfo.gcov_executableThe path to the gcov binary.
ld_executable
string CcToolchainInfo.ld_executableThe path to the ld binary.
libc
string CcToolchainInfo.libclibc version string. May return
None
.
needs_pic_for_dynamic_libraries
bool CcToolchainInfo.needs_pic_for_dynamic_libraries(feature_configuration)Returns true if this rule's compilations should apply -fPIC, false otherwise. Determines if we should apply -fPIC for this rule's C++ compilations depending on the C++ toolchain and presence of `--force_pic` Bazel option.
Parameters
Parameter | Description |
---|---|
feature_configuration
|
required Feature configuration to be queried. |
nm_executable
string CcToolchainInfo.nm_executableThe path to the nm binary.
objcopy_executable
string CcToolchainInfo.objcopy_executableThe path to the objcopy binary.
objdump_executable
string CcToolchainInfo.objdump_executableThe path to the objdump binary.
preprocessor_executable
string CcToolchainInfo.preprocessor_executableThe path to the preprocessor binary.
static_runtime_lib
depset CcToolchainInfo.static_runtime_lib(feature_configuration)Returns the files from `static_runtime_lib` attribute (so they can be passed to actions using this toolchain as inputs). The caller should check whether the feature_configuration enables `static_link_cpp_runtimes` feature (if not, neither `static_runtime_lib` nor `dynamic_runtime_lib` should be used), and use `dynamic_runtime_lib` if dynamic linking mode is active.
Parameters
Parameter | Description |
---|---|
feature_configuration
|
required Feature configuration to be queried. |
strip_executable
string CcToolchainInfo.strip_executableThe path to the strip binary.
sysroot
string CcToolchainInfo.sysrootReturns the sysroot to be used. If the toolchain compiler does not support different sysroots, or the sysroot is the same as the default sysroot, then this method returns
None
.
May return None
.
target_gnu_system_name
string CcToolchainInfo.target_gnu_system_nameThe GNU System Name. May return
None
.
to_json
string CcToolchainInfo.to_json()Deprecated. This API is deprecated and will be removed soon. Please do not depend on it. It is disabled with
---incompatible_struct_has_no_methods
. Use this flag to verify your code is compatible with its imminent removal. Creates a JSON string from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs, a list of these types or a dictionary with string keys and values of these types. Quotes and new lines in strings are escaped. Examples:
struct(key=123).to_json() # {"key":123} struct(key=True).to_json() # {"key":true} struct(key=[1, 2, 3]).to_json() # {"key":[1,2,3]} struct(key='text').to_json() # {"key":"text"} struct(key=struct(inner_key='text')).to_json() # {"key":{"inner_key":"text"}} struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json() # {"key":[{"inner_key":1},{"inner_key":2}]} struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json() # {"key":{"inner_key":{"inner_inner_key":"text"}}}.
Deprecated: instead, use json.encode(x) or json.encode_indent(x), which work for values other than structs and do not pollute the struct field namespace.
to_proto
string CcToolchainInfo.to_proto()Deprecated. This API is deprecated and will be removed soon. Please do not depend on it. It is disabled with
---incompatible_struct_has_no_methods
. Use this flag to verify your code is compatible with its imminent removal. Creates a text message from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs or dicts or lists of these types. Quotes and new lines in strings are escaped. Struct keys are iterated in the sorted order. Examples:
struct(key=123).to_proto() # key: 123 struct(key=True).to_proto() # key: true struct(key=[1, 2, 3]).to_proto() # key: 1 # key: 2 # key: 3 struct(key='text').to_proto() # key: "text" struct(key=struct(inner_key='text')).to_proto() # key { # inner_key: "text" # } struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto() # key { # inner_key: 1 # } # key { # inner_key: 2 # } struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto() # key { # inner_key { # inner_inner_key: "text" # } # } struct(foo={4: 3, 2: 1}).to_proto() # foo: { # key: 4 # value: 3 # } # foo: { # key: 2 # value: 1 # }
Deprecated: use proto.encode_text(x) instead.