cc_common

問題を報告する ソースを表示

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

メンバー

action_is_enabled

bool cc_common.action_is_enabled(feature_configuration, action_name)

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

パラメータ

パラメータ 説明
feature_configuration 必須
クエリする機能構成。
action_name required
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=[], compilation_contexts=[], name, disallow_pic_outputs=False, disallow_nopic_outputs=False, additional_inputs=[])

C++ コンパイルに使用する必要があります。(CompilationContext, CcCompilationOutputs) のタプルを返します。

パラメータ

パラメータ 説明
actions 必須
actions オブジェクト。
feature_configuration クエリが必要
feature_configuration
cc_toolchain 必要な
CcToolchainInfo プロバイダを使用する必要があります。
srcs デフォルトは [] です。
コンパイルするソースファイルのリスト。
public_hdrs デフォルトは [] です。
srcs のコンパイルに必要なヘッダーのリスト。依存するルールによって推移的に含めることができます。
private_hdrs デフォルトは [] です。
srcs のコンパイルに必要であり、依存するルールに含まれないヘッダーのリスト。
includes sequence、または depset。デフォルトは []
山かっこと引用符の両方で参照されるヘッダー ファイルの検索パス。通常は -I とともに渡されます。依存関係に推移的に伝播されます。
quote_includes デフォルトは [] です。
引用符で参照されるヘッダー ファイルを検索します(例: #include "foo/bar/header.h")。実行ルートに対する相対パスまたは絶対パスのいずれかになります。通常は -iquote とともに渡されます。依存関係に推移的に伝播されます。
system_includes デフォルトは [] です。
山かっこで参照されるヘッダー ファイルの検索パス(例: #include <foo/bar/header.h>)。実行ルートからの相対パスまたは絶対パスを使用できます。通常は -isystem で渡されます。依存関係に推移的に伝播されます。
framework_includes デフォルトは [] です。
Apple フレームワークのヘッダー ファイルの検索パス。実行ルートに対する相対パスまたは絶対パスのいずれかになります。通常は -F とともに渡されます。依存関係に推移的に伝播されます。
defines デフォルトは [] です。
このターゲットのコンパイルに必要な定義のセットです。各定義は文字列です。依存関係に推移的に伝播されます。
local_defines デフォルトは [] です。
このターゲットのコンパイルに必要な定義のセットです。各定義は文字列です。依存先には推移的に伝播されません。
include_prefix デフォルトは '' です。
このルールのヘッダーのパスに追加する接頭辞。この属性を設定すると、このルールの hdrs 属性のヘッダーにアクセスできるようになります。この属性の値は、リポジトリの相対パスの先頭に付加されます。この接頭辞が追加される前に、trip_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 required
機能を設定する cc_ツールチェーン。
language string; または 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)

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

パラメータ

パラメータ 説明
ctx required
ルール コンテキスト。
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 デフォルトは [] です。
アクションへの入力アーティファクトまたは出力アーティファクトの特定のカテゴリのアーティファクトの名前。

引数:

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

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

cxx_builtin_include_directories デフォルトは [] です

C++ コンパイル用の組み込みのインクルード ディレクトリ。これらはコンパイラが使用する正確なパスで、通常は実行ルートからの相対パスです。

コンパイラが使用するパスは、「gcc -E -xc++ - -v」で特定できます。

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

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

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

toolchain_identifier 必須

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

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

host_system_name 文字列、または None(デフォルトは None
無視されます。
target_system_name required
GNU システム名。
target_cpu required
ターゲット アーキテクチャ文字列。
target_libc 必須
libc のバージョンを表す文字列(「glibc-2.2.2」など)。文字列が「macosx」の場合、platform は MacOS とみなされます。Linux 環境では、
compiler 必須
コンパイラ文字列(「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 バージョン)。E.g.: gcc-3.4
abi_libc_version string; または None(デフォルトは None
使用している abi で使用されている glibc のバージョン。
tool_paths デフォルトは [] です。
ツールの場所。

引数:

name: ツールの名前。

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

make_variables デフォルトは [] です。
ルールからアクセスできるようにする make 変数。
builtin_sysroot string; または 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> など)。実行ルートからの相対パスまたは絶対パスを使用できます。通常は -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 required
ビルド変数を作成する cc_ツールチェーン。
feature_configuration 必須
クエリする機能構成。
source_file デフォルトは None です。
コンパイル用のオプションのソースファイル。cc_common.get_memory_inefficient_command_line から生成されたコマンドラインの末尾に source_file を追加するよりも、ここで source_file を渡すことをおすすめします。コンパイラ フラグを適切に指定して配置するには、ツールチェーンの作成者が関与します。
output_file デフォルトは None です。
コンパイルのオプションの出力ファイル。cc_common.get_memory_inefficient_command_line から生成されたコマンドラインの末尾に output_file を追加するよりも、ここで output_file を渡してください。コンパイラ フラグを適切に指定および配置するには、ツールチェーンの作成者が関与します。
user_compile_flags 文字列シーケンス、または None。デフォルトは None
追加のコンパイル フラグ(copts)のリスト。
include_directories depset、または None。デフォルトは None
インクルード ディレクトリの依存関係。
quote_include_directories depset、または None。デフォルトは None
引用符の依存関係はインクルード ディレクトリを含みます。
system_include_directories depset、または None。デフォルトは None
システム インクルード ディレクトリの依存関係。
framework_include_directories depset、または None。デフォルトは None
フレームワーク インクルード ディレクトリの依存関係。
preprocessor_defines depset、または None。デフォルトは None
プリプロセッサの定義の依存関係。
thinlto_index string、または None。デフォルトは None
LTO インデックス ファイルのパス。
thinlto_input_bitcode_file string、または None(デフォルトは None)。
LTO バックエンドに入力されるビットコード ファイル。
thinlto_output_object_file string、または 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 File、または None。デフォルトは None
リンクする静的ライブラリの File
pic_static_library File、または None。デフォルトは None
リンクする画像静的ライブラリの File
dynamic_library File、または None。デフォルトは None
リンクする動的ライブラリの Fileinterface_library が渡されない場合は、実行時に常に使用され、リンクに使用されます。
interface_library File、または None。デフォルトは None
リンクされるインターフェース ライブラリの File
pic_objects Fileシーケンス。デフォルトは unbound
試験運用版。使用しないでください
objects Fileシーケンス。デフォルトは unbound
試験運用版。使用しないでください
デフォルトは False です。
--whole_archive ブロックで静的ライブラリまたは静的オブジェクトをリンクするかどうか。
string; デフォルトは ''
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, is_using_linker=True, is_linking_dynamic_library=False, must_keep_debug=True, use_test_only_flags=False, is_static_linking_mode=True)

リンク アクションに使用されるリンク変数を返します。

パラメータ

パラメータ 説明
required
ビルド変数を作成する cc_ツールチェーン。
必須
クエリする機能構成。
None、または depset。デフォルトは None
リンカーがリンク時にライブラリを検索するディレクトリの依存関係。
None、または depset。デフォルトは None
ローダーが実行時にライブラリを検索するディレクトリの依存関係。
None、または sequence。デフォルトは None
追加リンクフラグ(linkopts)のリスト。
デフォルトは None です。
出力ファイルのパス(省略可)。
デフォルトは None です。
省略可能なパラメータのファイルパス。
デフォルトは 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 required
この入力で使用されるすべてのファイルを生成したターゲットのラベル。
libraries None、または depset。デフォルトは None です。
LibraryToLink のリスト。
None文字列デプセット文字列シーケンス(デフォルトは None
文字列として渡されるユーザーリンクフラグ。[String]、[[String]]、または depset(String) のいずれかを受け入れます。後者は、互換性の目的でのみ保持され、依存関係がフラット化されるため、おすすめしません。フラット化されていない depsets() を介して 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 の依存関係。
None、または sequence。デフォルトは None
非推奨。このパラメータはサポートが終了しており、まもなく削除されます。これに頼らないでください。--+incompatible_require_linker_input_cc_api無効になります。このフラグを使用して、差し迫った削除とコードとの互換性があることを確認します。
LibraryToLink のリスト。
None、または sequence。デフォルトは None
非推奨。このパラメータはサポートが終了しており、まもなく削除されます。これに頼らないでください。--+incompatible_require_linker_input_cc_api無効になります。このフラグを使用して、差し迫った削除とコードとの互換性があることを確認します。
文字列として渡されるユーザーリンク フラグのリスト。
additional_inputs None、または sequence。デフォルトは 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)

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

パラメータ

パラメータ 説明
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 required
テンプレート展開に使用するビルド変数。

get_execution_requirements

sequence cc_common.get_execution_requirements(feature_configuration, action_name)

指定されたアクションの実行要件を返します。

パラメータ

パラメータ 説明
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)に記載されている名前のいずれかである必要があります。

get_memory_inefficient_command_line

sequence cc_common.get_memory_inefficient_command_line(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 required
テンプレート展開に使用するビルド変数。

get_tool_for_action

string cc_common.get_tool_for_action(feature_configuration, action_name)

指定したアクションのツールパスを返します。

パラメータ

パラメータ 説明
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)に記載されている名前のいずれかである必要があります。

is_enabled

bool cc_common.is_enabled(feature_configuration, feature_name)

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

パラメータ

パラメータ 説明
feature_configuration 必須
クエリする機能構成。
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 必要な
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 デフォルトは [] です