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 必須
クエリする機能の構成。
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=[], 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 デフォルトは []
引用符で参照されるヘッダー ファイルの検索パス(例:#「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 必須
機能を構成します。
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, cc_target_os=None)

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

パラメータ

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

引数:

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

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

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

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

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

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

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

次の場合、機能を有効にできません。
- provides に、有効にする別の機能またはアクション構成の名前が含まれている。
- provides に「provide」と同じ値が含まれている別の機能またはアクション構成で 有効にする必要があります互換性のない機能が誤って同時にアクティブ化されてコンパイラ エラーの診断が困難になるのを防ぐために、この方法を使用します。
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++ コンパイル用の組み込みインクルード ディレクトリ。これらはコンパイラが使用する正確なパスでなければならず、通常は 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 必須
ターゲット アーキテクチャの文字列。
target_libc 必須
libc バージョンの文字列(例: glibc-2.2.2)。
compiler 必須
コンパイラ バージョンの文字列(「gcc-4.1.1」など)。
abi_version string;または None デフォルトは None
です 使用中の abi(gcc バージョン)例: 「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 では --grte_top オプションなどを使用して別の sysroot を使用できません。
cc_target_os string;または 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>)。実行ルートを基準とした相対パスまたは絶対ルートのいずれかを指定できます。通常、-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
です 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_ツールチェーン を使用します。
feature_configuration 必須
クエリする機能の構成。
source_file デフォルトは None
コンパイル用のオプションのソースファイル。source_file を cc_common.get_memory_inefficiency_command_line から生成されたコマンドラインの末尾に追加するよりも、ここで渡すことをおすすめします。そうすると、コンパイラ フラグを適切に指定して配置することがツールチェーン作成者の力になります。
output_file デフォルトは None
(省略可)コンパイルの出力ファイル。output_file を cc_common.get_memory_ineffective_command_line から生成されたコマンドラインの末尾に追加するよりも、ここで渡すことをおすすめします。コンパイラ フラグを適切に指定して配置できるかどうかは、ツールチェーンの作成者が行います。
user_compile_flags 文字列シーケンス。または None デフォルトは None
追加のコンパイル フラグ(copt)のリスト。
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
です フレームワーク インクルード ディレクトリの依存関係。
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
です リンクする動的ライブラリの File。常に実行時に使用され、interface_library を渡さない場合はリンクに使用されます。
interface_library File:または None デフォルトは None
です リンクするインターフェース ライブラリの File
pic_objects ファイルシーケンス デフォルトは unbound
試験運用中であり、使用しない
objects ファイルシーケンス デフォルトは 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, 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_ツールチェーン を使用します。
必須
クエリする機能の構成。
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、または stringdepset。または stringシーケンス デフォルトは None
です 文字列として渡されるユーザーリンクフラグ。[String]、[[String]]、または depset(String) を受け入れます。後者は互換性のためにのみ保持されるため、おすすめしません。依存関係はフラット化されています。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 の到着時刻。
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 必須
アクションの名前。@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 必須
クエリする機能の構成。
feature_name 必須
特徴の名前。

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 デフォルトは []