cc_common

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 required
クエリ対象の機能構成。
action_name 必須
アクション コンフィグの名前。

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=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[])

C++ コンパイルに使用します。(CompilationContextCcCompilationOutputs)のタプルを返します。

パラメータ

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

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 デフォルトは []
です。有効にする機能のリストです。
unsupported_features デフォルトは []
現在のルールでサポートされていない機能のリスト。

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, target_cpu, target_libc, compiler, abi_version=None, abi_libc_version=None, tool_paths=[], make_variables=[], builtin_sysroot=None, cc_target_os=None)

CcToolchainConfigInfo プロバイダを作成します。

パラメータ

パラメータ 説明
ctx 必須
ルールのコンテキスト。
features デフォルトは []
1 つの特徴のすべてのフラグ仕様が含まれます。

引数:

name: 特徴の名前。ツールチェーンに「feature」セクションを追加し、対応する文字列を BUILD ファイルに機能として追加することで、Bazel を変更せずに機能を導入できます。

enabled: 「True」の場合、この機能は、ルールタイプで明示的にサポートされていないとマークされていない限り有効です。

flag_sets: FlagSet リスト。特定の機能が有効になっている場合、指定されたアクションにフラグセットが適用されます。

env_sets: EnvSet のリスト。特定の機能が有効になっている場合、環境セットは、指定されたアクションに適用されます。

requires: ツールチェーンでこの機能がサポートされるタイミングを定義する機能セットのリスト。この機能は、いずれかの特徴セットが完全に適用されている場合(つまり、特徴セットのすべての特徴が有効になっている場合)にサポートされます。requires を省略すると、この機能は他の機能が有効かどうかに関係なくサポートされます。たとえば、有効にするビルドモード(opt / fastbuild / dbg)に応じてフラグをフィルタリングするために使用します。

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

provides: この特徴が競合する名前のリスト。

次の場合に、機能を有効にできません。
- provides に、有効にする別の機能またはアクション構成の名前が含まれている。
- provides に、有効にする別の機能またはアクション構成の「provides」と同じ値が含まれている。互換性のない機能が誤って同時に有効になり、コンパイラ エラーの診断が困難にならないようにするために使用します。
action_configs デフォルトは []
です。アクション構成は Bazel アクションに対応しており、有効な機能に基づいてツールを選択できます。アクション構成の有効化は、機能と同じセマンティクスで発生します。機能は、他の機能と同じように、アクション構成を「必須」または「暗黙的に」指定できます。

引数:

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

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

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

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

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

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

引数:

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 必須
GNU システム名。
target_cpu required
ターゲット アーキテクチャの文字列。
target_libc 必須
libc バージョンの文字列(glibc-2.2.2 など)。
compiler 必須
コンパイラのバージョン文字列(「gcc-4.1.1」など)。
abi_version 文字列、または None。デフォルトは None
使用中の ABI(gcc バージョン)。例: 「gcc-3.4」
abi_libc_version 文字列、または None。デフォルトは None
使用している ABI で使用される glibc バージョン。
tool_paths デフォルトは []
です。ツールの場所。

引数:

name: ツールの名前。

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

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

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 必須
クエリ対象の特徴構成。
source_file デフォルトは None
です。コンパイルに使用するソースファイル(省略可)。source_file は、cc_common.get_memory_inefficiency_command_line から生成されたコマンドラインの末尾に追加するよりも、ここで渡すことをおすすめします。そうすると、コンパイラ フラグを適切に指定して配置することがツールチェーンの作成者が行います。
output_file デフォルトは None
です。コンパイルの出力ファイル(省略可)。output_file を cc_common.get_memory_innatural_command_line から生成されたコマンドラインの末尾に追加するよりも、ここで渡すことをおすすめします。そうすると、コンパイラ フラグを適切に指定して配置することがツールチェーンの作成者が行います。
user_compile_flags 文字列シーケンス、または None。デフォルトは None です。
追加のコンパイル フラグ(copts)のリスト。
include_directories depset または None。デフォルトは None です。
インクルード ディレクトリの依存関係。
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 デフォルトは False
です。true にすると、コンパイル時に位置に依存しないコードが生成されます。
add_legacy_cxx_options デフォルトは 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
試験運用版、使用しないでください
デフォルトは False です。
--whole_archive ブロックで静的ライブラリまたは静的オブジェクトをリンクするかどうか。
文字列。デフォルトは ''
。solib ディレクトリ内の動的ライブラリ リンクのデフォルトパスをオーバーライドします。デフォルトを使用する場合は空の文字列。
デフォルトは ''
solib ディレクトリ内のインターフェース ライブラリ リンクのデフォルト パスをオーバーライドします。デフォルトを使用する場合は空の文字列。

Variables cc_common.create_link_variables(cc_toolchain, feature_configuration, library_search_directories=None, runtime_library_search_directories=None, user_link_flags=None, output_file=None, param_file=None, def_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 が必要です。
required
クエリ対象の機能構成。
None または depset。デフォルトは None
。リンカーがリンク時にライブラリを検索するディレクトリの Depset。
None または depset。デフォルトは None です。
ローダーが実行時にライブラリを検索するディレクトリの Depset。
None、または sequence。デフォルトは None です。
追加リンクフラグ(linkopts)のリスト。
デフォルトは None です。
オプションの出力ファイルのパス。
デフォルトは None です。
省略可能なパラメータ ファイルのパス。
デフォルトは None
です。省略可能な .def ファイルパス。
デフォルトは True
。リンカーを使用する場合は true、アーカイバを使用する場合は false。呼び出し元は、使用するアクション名と同期された状態を維持する必要があります(実行可能ファイルまたは動的ライブラリをリンクする場合は is_using_linker = True、静的ライブラリをアーカイブする場合は is_using_linker = False です)。
デフォルトは False です。
動的ライブラリを作成する場合は true、実行可能ライブラリまたは静的ライブラリを作成する場合は False です。呼び出し元は、この名前を使用したアクション名と同期させる責任があります。このフィールドは、b/65151735 が修正されると削除されます。
デフォルトは True です。
False に設定すると、bazel は「strip_debug_symbols」変数を公開します。これは通常、リンカーを使用して出力ファイルからデバッグ シンボルを削除するために使用されます。
デフォルトは False です。
true に設定すると、is_cc_test 変数が設定されます。
デフォルトは 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 がフラット化されるため、推奨されません。user_link_flags をフラット化されていない depsets() で伝播する場合は、それらを 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、または sequence。デフォルトは 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, feature_configuration, cc_toolchain, compilation_outputs, user_link_flags=[], linking_contexts=[], name, language='c++', alwayslink=False, additional_inputs=[], disallow_static_libraries=False, disallow_dynamic_library=False)

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

パラメータ

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

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 必須
クエリ対象の特徴構成。
action_name 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 必須
クエリ対象の特徴構成。
action_name 必須
アクションの名前。@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 必須
クエリ対象の特徴構成。
action_name 必須
アクションの名前。@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 必須
クエリ対象の特徴構成。
action_name 必須
アクションの名前。@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 required
クエリ対象の機能構成。
feature_name required
機能の名前。

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

C++ の伝播リンクに使用する必要があります。

パラメータ

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

merge_compilation_contexts

CompilationContext cc_common.merge_compilation_contexts(compilation_contexts=[])

複数の CompilationContexts を 1 つにマージします。

パラメータ

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

merge_compilation_outputs

CcCompilationOutputs cc_common.merge_compilation_outputs(compilation_outputs=[])

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

パラメータ

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