cc_common

問題を報告する ソースを表示 ナイトリー · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

C++ のコンパイル、リンク、コマンドライン生成用のユーティリティ。

メンバー

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

指定された action_config が機能構成で有効になっている場合は true を返します。

パラメータ

パラメータ 説明
feature_configuration FeatureConfiguration(必須)
クエリ対象の特徴量の構成。
action_name 文字列。必須
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++ コンパイルに使用する必要があります。(CompilationContextCcCompilationOutputs)のタプルを返します。

パラメータ

パラメータ 説明
actions actions: 必須の
actions オブジェクト。
feature_configuration FeatureConfiguration: クエリ対象の必須の
feature_configuration
cc_toolchain 情報:
CcToolchainInfo プロバイダの使用が必須です。
srcs sequence(デフォルトは []
): コンパイルするソースファイルのリスト。
public_hdrs シーケンス。デフォルトは []
。src のコンパイルに必要なヘッダーのリスト。依存するルールによって伝播的に含めることができます。
private_hdrs シーケンス。デフォルトは []
。src のコンパイルに必要なヘッダーのリスト。依存関係のあるルールには含まれません。
includes sequence または depset。デフォルトは []
。角かっこと引用符の両方で参照されるヘッダー ファイルの検索パス。通常は -I で渡します。依存関係に推移的に伝播されます。
quote_includes シーケンス。デフォルトは []
。引用符で参照されるヘッダー ファイルの検索パス(例: #include "foo/bar/header.h")。実行ルート相対または絶対のいずれかです。通常は -iquote で渡します。依存関係に推移的に伝播されます。
system_includes シーケンス。デフォルトは []
。角かっこで参照されるヘッダー ファイルの検索パス(#include <foo/bar/header.h> など)。exec ルート相対または絶対のいずれかです。通常は -isystem で渡されます。依存関係に推移的に伝播されます。
framework_includes シーケンス。デフォルトは []
。Apple フレームワークのヘッダー ファイルの検索パス。実行ルート相対または絶対のいずれかです。通常は -F で渡します。依存関係に推移的に伝播されます。
defines sequence: デフォルトは []
。このターゲットをコンパイルするために必要な定義のセットを指定します。各定義は文字列です。依存関係に推移的に伝播されます。
local_defines sequence: デフォルトは []
。このターゲットをコンパイルするために必要な定義のセットを指定します。各定義は文字列です。依存関係に推移的に伝播されません。
include_prefix 文字列。デフォルトは '' です。
このルールのヘッダーのパスに追加する接頭辞。設定すると、このルールの hdrs 属性のヘッダーは、この属性の値がリポジトリ相対パスの前に付加された場所にアクセスできます。この接頭辞が追加される前に、strip_include_prefix 属性の接頭辞が削除されます。
strip_include_prefix 文字列。デフォルトは ''
。このルールのヘッダーのパスから削除する接頭辞。設定すると、このルールの hdrs 属性のヘッダーには、この接頭辞が切り捨てられたパスでアクセスできます。相対パスの場合は、パッケージ相対パスとして扱われます。絶対パスの場合は、リポジトリ相対パスとして解釈されます。include_prefix 属性の接頭辞は、この接頭辞が削除された後に追加されます。
user_compile_flags sequence: デフォルトは []
です。コンパイル オプションの追加リスト。
conly_flags sequence: デフォルトは [] です。
C コンパイルの追加のコンパイル オプションのリスト。
cxx_flags sequence: デフォルトは []
。C++ コンパイルの追加のコンパイル オプションのリスト。
compilation_contexts シーケンス。デフォルトは []
。コンパイルに使用される依存関係のヘッダー。
name 文字列。必須
このメソッドによって作成されたアクションの出力アーティファクトに名前を付けるために使用されます。「main_output」引数もご覧ください。
disallow_pic_outputs bool。デフォルトは False
。PIC 出力を作成するかどうか。
disallow_nopic_outputs bool; デフォルトは False
NOPIC 出力を作成するかどうか。
additional_inputs sequence: デフォルトは []
。srcs のコンパイルに必要な追加ファイルのリスト。
module_interfaces sequence: デフォルトは 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 文字列、または None。デフォルトは None です。
構成する言語: c++ または objc(デフォルトは c++)
requested_features sequence: デフォルトは []
。有効にする機能のリスト。
unsupported_features sequence: デフォルトは []
。現在のルールでサポートされていない機能のリスト。

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; 必須
ルールのコンテキスト。
features シーケンス: デフォルトは []
。1 つの機能のすべてのフラグ仕様が含まれます。

引数:

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: デフォルトは []
です。アクション構成は Bazel アクションに対応しており、有効な機能に基づいてツールを選択できます。アクション構成の有効化は、機能と同じセマンティクスで発生します。機能は、他の機能と同じように、アクション構成を「必須」または「暗黙的に」指定できます。

引数:

action_name: この構成が適用される Bazel アクションの名前(例: c-compile、c-module-compile)。

enabled: 「true」の場合、ルールタイプでサポートされていないと明示的にマークされていない限り、このアクションが有効になります。

tools: アクションに適用されるツールは、特徴構成に一致する特徴セットを持つ最初のツールです。指定された特徴構成に一致するツールがない場合、エラーがスローされます。そのため、空の特徴セットを持つデフォルトのツールを指定することをおすすめします。

flag_sets: 指定されたアクション構成が有効になっている場合、フラグセットが対応するアクションに適用されます。

implies: このアクション構成が有効になると自動的に有効になる機能またはアクション構成のリスト。暗黙的な機能またはアクション構成のいずれかを有効にできない場合、このアクション構成も(サイレント)有効になりません。

artifact_name_patterns sequence: デフォルトは []
。アクションへの入力または出力アーティファクトの特定のカテゴリのアーティファクトの名前。

引数:

category_name: この選択が適用されるアーティファクトのカテゴリ。このフィールドは、Bazel で定義されたカテゴリのリストと照合されます。カテゴリの例としては、「linked_output」や、この選択のアートファクトなどがあります。拡張機能とともに、ターゲット名に基づいてアーティファクト名を作成するために使用されます。

extension: この選択のアーキファクトを作成する拡張機能。接頭辞とともに、ターゲット名に基づいてアーティファクト名を作成するために使用されます。

cxx_builtin_include_directories シーケンス。デフォルトは []
です。

C++ コンパイルに組み込まれたインクルード ディレクトリ。これらは、コンパイラで使用されるパスと完全に一致している必要があります。通常は、exec ルートからの相対パスです。

コンパイラで使用されるパスは、gcc -E -xc++ - -v で確認できます。

現在、C コンパイルに C++ パスも使用しています。これは、C++ ヘッダー ファイルと C ヘッダー ファイルの間に名前の競合がない限り安全です。

相対パスは、構成ファイル ディレクトリを基準に解決されます。

コンパイラが --sysroot をサポートしている場合、これらのパスではインクルードパスではなく %sysroot% を使用し、sysroot 属性を指定して、正しい置換を行うために必要な情報を blaze に提供する必要があります。

toolchain_identifier 文字列。必須

クロスツール リリース内のツールチェーンの一意の識別子。パスのディレクトリ名として使用できる必要があります。

次の正規表現 [a-zA-Z_][\.\- \w]* と一致する必要があります。

host_system_name string、または None。デフォルトは None
無視されます。
target_system_name 文字列、または None。デフォルトは None
非推奨。GNU システム名。この文字列は CcToolchainInfo.target_gnu_system_name に公開されます。
target_cpu 文字列、または None。デフォルトは None
非推奨: 代わりに CPU ベースの制約を使用してください。文字列が「k8」の場合、未加工の FDO プロファイル データのファイル名から「target_cpu」が省略されます。
target_libc 文字列、または None。デフォルトは None
非推奨: 代わりに OS ベースの制約を使用してください。libc バージョンの文字列(glibc-2.2.2 など)。文字列が「macosx」の場合、プラットフォームは MacOS と見なされます。それ以外の場合は Linux です。この文字列は CcToolchainInfo.libc に公開されます。
compiler string; 必須
コンパイラ文字列(例:「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 文字列、または None。デフォルトは None
使用中の ABI(gcc バージョン)。例: 「gcc-3.4」文字列は C++ ツールチェーン変数 ABI に設定されます。
abi_libc_version 文字列、または None。デフォルトは None
使用している ABI で使用される glibc バージョン。この文字列は、C++ ツールチェーン変数 ABI_LIBC_VERSION に設定されます。
tool_paths sequence: デフォルトは []
です。ツールの場所。

引数:

name: ツールの名前。

path: ツールの場所。絶対パス(非完全なツールチェーンの場合)または cc_toolchain のパッケージに対する相対パスを指定できます。

make_variables シーケンス。デフォルトは []
。ルールからアクセスできる make 変数。
builtin_sysroot 文字列、または None(デフォルトは None
組み込みの sysroot。この属性が指定されていない場合、Bazel は別の sysroot(--grte_top オプションなど)を使用することを許可しません。

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> など)で参照されるヘッダー ファイルの検索パスのセット。exec ルートからの相対パスまたは絶対パスのいずれかです。通常は -isystem で渡します。
includes デフォルトは unbound
角かっこと引用符の両方で参照されるヘッダー ファイルの検索パスのセット。通常は -I とともに渡されます。
quote_includes デフォルトは unbound
quotations で参照されるヘッダー ファイルの検索パスのセット(#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 情報: 必須
ビルド変数を作成する cc_toolchain。
feature_configuration FeatureConfiguration(必須)
クエリ対象の特徴量の構成。
source_file デフォルトは None
です。コンパイルのソースファイル(省略可)。cc_common.get_memory_inefficient_command_line から生成されたコマンドラインの末尾に追加するのではなく、ここで source_file を渡すことをおすすめします。そうすれば、コンパイラ フラグを適切に指定して配置するのは toolchain の作成者の責任になります。
output_file デフォルトは None
です。コンパイルの出力ファイル(省略可)。cc_common.get_memory_inefficient_command_line から生成されたコマンドラインの末尾に追加するのではなく、ここで output_file を渡すことをおすすめします。これにより、コンパイラ フラグを適切に指定して配置するのは toolchain 作成者の責任になります。
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 文字列、または None。デフォルトは None
LTO インデックス ファイルパスです。
thinlto_input_bitcode_file 文字列、または None。デフォルトは None
LTO バックエンドに入力されるビットコード ファイル。
thinlto_output_object_file 文字列、または None。デフォルトは None
LTO バックエンドで出力されるオブジェクト ファイル。
use_pic bool。デフォルトは False
。true の場合、コンパイル時に位置依存コードが生成されます。
add_legacy_cxx_options bool; デフォルトは False
未使用。
variables_extension dict: デフォルトは 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 デフォルトは None
使用される CcToolchainInfo プロバイダです。
static_library ファイル、または None。デフォルトは None
リンクされる静的ライブラリの File
pic_static_library ファイル、または None。デフォルトは None
リンクされる pic 静的ライブラリの File
dynamic_library ファイル、または None。デフォルトは None
リンクされる動的ライブラリの File。ランタイムで常に使用され、interface_library が渡されていない場合はリンクに使用されます。
interface_library ファイル、または None。デフォルトは None
リンクされるインターフェース ライブラリの File
pic_objects ファイルシーケンス。デフォルトは unbound
。試験運用版。使用しないでください。
objects ファイルシーケンス。デフォルトは unbound
。試験運用版。使用しないでください。
bool; デフォルトは False
--whole_archive ブロック内の静的ライブラリ/オブジェクトをリンクするかどうか。
文字列。デフォルトは ''
。solib ディレクトリ内の動的ライブラリ リンクのデフォルトパスをオーバーライドします。デフォルトを使用する場合は空の文字列。
文字列。デフォルトは ''
。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(必須)
クエリ対象の特徴量の構成。
depset。デフォルトは []
。リンカーがリンク時にライブラリを検索するディレクトリの Depset。
depset。デフォルトは []
。ローダが実行時にライブラリを検索するディレクトリの Depset。
シーケンス。デフォルトは []
。追加のリンクフラグ(linkopts)のリスト。
デフォルトは None
です。出力ファイルパス(省略可)。
デフォルトは None
(省略可)パラメータ ファイルのパス。
bool。デフォルトは True
。リンカーを使用する場合は true、アーカイバを使用する場合は false。呼び出し元は、これを使用して使用されるアクション名と同期を保つ必要があります(実行可能ファイルまたは動的ライブラリのリンクの場合は is_using_linker = True、静的ライブラリのアーカイブの場合は is_using_linker = False)。
bool。デフォルトは False
。動的ライブラリを作成する場合は true、実行可能ライブラリまたは静的ライブラリの場合は false。呼び出し元は、この値を使用したアクション名と同期させる責任があります。このフィールドは、b/65151735 が修正されると削除されます。
bool。デフォルトは True
。False に設定すると、bazel は「strip_debug_symbols」変数を公開します。これは通常、リンカーを使用して出力ファイルからデバッグ シンボルを削除するために使用されます。
bool。デフォルトは False
。true に設定すると、is_cc_test 変数が設定されます。
bool; デフォルトは 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。または、文字列depset。または、文字列シーケンス。デフォルトは None
文字列として渡されるユーザーリンク フラグ。[String]、[[String]]、depset(String) のいずれかを指定します。後者は、互換性を確保するためにのみ保持され、depset がフラット化されるため、推奨されません。フラット化されていない depset() を介して user_link_flags を伝播する場合は、最後までフラット化されないように LinkerInput でラップします。
additional_inputs None または depset(デフォルトは None
リンク アクションへの追加入力(リンク スクリプトなど)

create_linking_context

LinkingContext cc_common.create_linking_context(linker_inputs=None, libraries_to_link=None, user_link_flags=None, additional_inputs=None)

LinkingContext を作成します。

パラメータ

パラメータ 説明
linker_inputs None。または depset。デフォルトは None
LinkerInput の Depset。
None、またはシーケンス。デフォルトは None
非推奨。このパラメータは非推奨となり、まもなく削除されます。これに依存しないでください。--incompatible_require_linker_input_cc_api では無効になっています。このフラグを使用すると、コードがまもなく削除される機能と互換性があることを確認できます。
LibraryToLink のリスト。
None、またはシーケンス。デフォルトは None
非推奨。このパラメータは非推奨となり、まもなく削除されます。これに依存しないでください。--incompatible_require_linker_input_cc_api では無効になっています。このフラグを使用すると、コードがまもなく削除される機能と互換性があることを確認できます。
文字列として渡されるユーザーリンク フラグのリスト。
additional_inputs None、またはシーケンス。デフォルトは None
非推奨。このパラメータは非推奨となり、まもなく削除されます。これに依存しないでください。--incompatible_require_linker_input_cc_api では無効になっています。このフラグを使用すると、コードがまもなく削除される機能と互換性があることを確認できます。
リンク アクションへの追加入力(リンク スクリプトなど)。

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)

情報のダウンストリームへの伝播が可能なライブラリルールの作成に使用します。これにより、後で、実行可能ファイルまたは動的ライブラリを作成するために、伝播リンクを行うトップレベル ルールによってリンクされます。(CcLinkingContextCcLinkingOutputs)のタプルを返します。

パラメータ

パラメータ 説明
actions actions: 必須の
actions オブジェクト。
name string; 必須
このメソッドによって作成されたアクションの出力アーティファクトに名前を付けるために使用されます。
feature_configuration FeatureConfiguration: クエリ対象の必須の
feature_configuration
cc_toolchain 情報:
CcToolchainInfo プロバイダの使用が必須です。
language 文字列。デフォルトは 'c++'
。現時点では C++ のみがサポートされています。このパラメータは使用しないでください。
disallow_static_libraries bool; デフォルトは False
静的ライブラリを作成するかどうか。
disallow_dynamic_library bool。デフォルトは False
。ダイナミック ライブラリを作成するかどうか。
compilation_outputs CcCompilationOutputs: 必須
リンクするオブジェクト ファイルを含むコンパイル出力。
linking_contexts 順序。デフォルトは []
です。依存関係のライブラリ。これらのライブラリは、バイナリまたはライブラリのいずれであっても、link() 呼び出しの出力アーティファクトにリンクされます。
sequence: デフォルトは []
です。リンク オプションの追加リストです。
bool; デフォルトは False
このライブラリを常にリンクするかどうか。
additional_inputs sequence: デフォルトは []
。リンク アクションへの追加入力(リンク スクリプトなど)に使用します。
variables_extension dict: デフォルトは unbound
。リンク コマンドラインを作成するときに toolchain 構成に渡す追加の変数。

create_lto_compilation_context

LtoCompilationContext cc_common.create_lto_compilation_context(objects={})

LTO コンパイル コンテキストを作成する

パラメータ

パラメータ 説明
objects dict: デフォルトは {}
です。完全なオブジェクトからインデックス オブジェクトへのマッピングです。

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(必須)
クエリ対象の特徴量の構成。
action_name string; 必須
アクションの名前。@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(必須)
クエリ対象の特徴量の構成。
action_name string; 必須
アクションの名前。@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(必須)
クエリ対象の特徴量の構成。
action_name string; 必須
アクションの名前。@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(必須)
クエリ対象の特徴量の構成。
action_name string; 必須
アクションの名前。@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(必須)
クエリ対象の特徴量の構成。
feature_name 文字列; 必須
特徴の名前。

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: 必須の
actions オブジェクト。
name string; 必須
このメソッドによって作成されたアクションの出力アーティファクトに名前を付けるために使用されます。
feature_configuration FeatureConfiguration: クエリ対象の必須の
feature_configuration
cc_toolchain 情報:
CcToolchainInfo プロバイダの使用が必須です。
language 文字列。デフォルトは 'c++'
。現時点では C++ のみがサポートされています。このパラメータは使用しないでください。
output_type 文字列。デフォルトは 'executable'
。値は「executable」または「dynamic_library」のいずれかです。
bool。デフォルトは True
。依存関係を静的にリンクする場合は true、動的にリンクする場合は false です。
compilation_outputs CcCompilationOutputs、または None。デフォルトは None
リンクするオブジェクト ファイルを含むコンパイル出力。
linking_contexts sequence: デフォルトは []
。このルールによって生成されたリンク コンテキストにリンクされる依存関係のリンク コンテキスト。
sequence: デフォルトは []
です。リンカー オプションの追加リストです。
stamp int; デフォルトは 0
output_type が「executable」の場合、リンクされた実行可能ファイルにビルド情報を含めるかどうか。1 の場合、ビルド情報は常に含まれます。0 の場合(デフォルトのビルド情報は常に除外されます。-1 の場合、デフォルトの動作が使用されます。これは --[no]stamp フラグでオーバーライドできます。テストルールの実行可能出力を生成する場合は、この値を設定解除(または 0 に設定)する必要があります。
additional_inputs sequence または depset。デフォルトは []
。リンク アクションへの追加入力(リンク スクリプトなど)に使用します。
additional_outputs sequence: デフォルトは []
です。リンク アクションの追加出力(地図ファイルなど)に使用します。
variables_extension dict: デフォルトは {}
。リンク作成コマンドライン時に toolchain 構成に渡す追加の変数。

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

複数の CompilationContexts を 1 つに統合します。

パラメータ

パラメータ 説明
compilation_contexts sequence: デフォルトは []
です。マージする CompilationContexts のリストです。各コンテキストのヘッダーは、返されたプロバイダの直接フィールドによってエクスポートされます。

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

コンパイル出力を統合します。

パラメータ

パラメータ 説明
compilation_outputs シーケンス。デフォルトは [] です。