メンバー
- action_is_enabled
- CcToolchainInfo
- configure_features
- create_cc_toolchain_config_info
- create_compilation_context
- create_compilation_outputs
- create_compile_variables
- create_library_to_link
- create_link_variables
- create_linker_input
- create_linking_context
- create_linking_context_from_compilation_outputs
- do_not_use_tools_cpp_compiler_present
- get_environment_variables
- get_execution_requirements
- get_memory_inefficient_command_line
- get_tool_for_action
- is_enabled
- リンク
- merge_compilation_contexts
- merge_compilation_outputs
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++ ツールチェーンに関する情報を含むプロバイダを取得するために使用するキー
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_ツールチェーン。 |
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
|
required ルール コンテキスト。 |
features
|
デフォルトは [] です。1 つの機能のすべてのフラグ仕様が含まれます。 引数:
- provides に、有効にする別の機能またはアクション設定の名前が含まれている。- provides に、有効にする別の機能またはアクション設定の「provides」と同じ値が含まれている。これは、互換性のない機能が誤って同時にアクティブにされて、コンパイラ エラーの診断が困難になるのを防ぐために使用します。
|
action_configs
|
デフォルトは [] です。アクション構成は Bazel アクションに対応し、有効になっている機能に基づいてツールを選択できます。アクション構成の有効化は、機能と同じセマンティクスで行われます。機能には、別の機能と同様にアクション構成を「要求」または「暗示」できます。 引数:
|
artifact_name_patterns
|
デフォルトは [] です。アクションに対する入力アーティファクトまたは出力アーティファクトの特定のカテゴリのアーティファクトの名前。 引数:
|
cxx_builtin_include_directories
|
デフォルトは [] です。C++ コンパイル用の組み込みインクルード ディレクトリ。これらはコンパイラが使用する正確なパスであり、通常は実行ルートからの相対パスです。 コンパイラが使用するパスは「gcc -E -xc++ - -v」で特定できます。 現在、C コンパイルにも C++ パスを使用しています。これは、C++ と C のヘッダー ファイルの間に名前の競合がない限り安全です。 相対パスは、構成ファイルのディレクトリを基準とする相対パスで解決されます。 コンパイラが --sysroot をサポートしている場合、これらのパスでは include パスではなく %sysroot% を使用し、sysroot 属性を指定して、正しい置換に必要な情報を提供する必要があります。 |
toolchain_identifier
|
必須 クロスツール リリース内のツールチェーンの一意の識別子。パスのディレクトリ名として使用できる必要があります。 次の正規表現に一致している必要があります: [a-zA-Z_][\.\- \w]* |
host_system_name
|
string または None 。デフォルトは None 。無視されます。 |
target_system_name
|
required GNU システム名。 |
target_cpu
|
required ターゲット アーキテクチャ文字列。 |
target_libc
|
必須 libc バージョン文字列(例: glibc-2.2.2)。 |
compiler
|
必須 コンパイラのバージョン文字列(「gcc-4.1.1」など)。 |
abi_version
|
string、または None 。デフォルトは None 。使用されている abi(gcc バージョン)。E.g.: 「gcc-3.4」 |
abi_libc_version
|
string、または None 。デフォルトは None 。使用している abi が使用する glibc のバージョン。 |
tool_paths
|
デフォルトは [] です。ツールの場所。 引数:
|
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> など)。実行ルートからの相対パスでも絶対パスでもかまいません。通常は -isystem で渡されます。 |
includes
|
デフォルトは unbound です。山かっこと引用符の両方で参照されるヘッダー ファイルの検索パスのセット。通常は -I で渡されます。 |
quote_includes
|
デフォルトは unbound です。引用符で囲まれて参照されるヘッダー ファイルの検索パスのセット(例: #include "foo/bar/header.h")。実行可能ファイルは、実行ルートからの相対パスまたは絶対パスのいずれかです。通常は -iquota とともに渡されます |
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
|
required ビルド変数を作成する cc_ツールチェーン。 |
feature_configuration
|
必須 クエリ対象の機能構成。 |
source_file
|
デフォルトは None です。コンパイル用のオプションのソースファイル。source_file は、cc_common.get_memory_inefficient_command_line から生成されたコマンドラインの最後に追加するのではなく、ここで渡すことをおすすめします。コンパイラ フラグを適切に指定して配置できるのは、ツールチェーン作成者の力となるためです。 |
output_file
|
デフォルトは None です。コンパイルのオプションの出力ファイル。cc_common.get_memory_inefficient_command_line から生成されたコマンドラインの末尾に output_file を付加するのではなく、ここで output_file を渡すことをおすすめします。コンパイラ フラグを適切に指定および配置できるのは、ツールチェーン作成者の力となるためです。 |
user_compile_flags
|
string のシーケンス、または 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
|
文字列、または None 。デフォルトは None です。LTO バックエンドに入力されるビットコード ファイル。 |
thinlto_output_object_file
|
文字列または None 。デフォルトは None です。LTO バックエンドによって出力されるオブジェクト ファイル。 |
use_pic
|
デフォルトは False です。true の場合、コンパイル時に位置に依存しないコードが生成されます。 |
add_legacy_cxx_options
|
デフォルトは False です。未使用。 |
variables_extension
|
dict。デフォルトは unbound 。コンパイル アクションで使用される追加の変数の辞書。 |
create_library_to_link
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
|
File のシーケンス。デフォルトは unbound です。試験運用版のため、使用しないでください。 |
objects
|
File のシーケンス。デフォルトは unbound です。試験運用版のため、使用しないでください。 |
alwayslink
|
デフォルトは False です。--whole_archive ブロック内の静的ライブラリ/オブジェクトをリンクするかどうか。 |
dynamic_library_symlink_path
|
string;
デフォルトは '' solib ディレクトリにあるダイナミック ライブラリ リンクのデフォルト パスをオーバーライドします。デフォルトを使用する場合は空の文字列。 |
interface_library_symlink_path
|
デフォルトは '' です。solib ディレクトリにあるインターフェース ライブラリ リンクのデフォルトパスをオーバーライドします。デフォルトを使用する場合は空の文字列。 |
create_link_variables
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 ビルド変数を作成する cc_ツールチェーン。 |
feature_configuration
|
必須 クエリ対象の機能構成。 |
library_search_directories
|
None ; または depset;
デフォルトは None リンカーがリンク時にライブラリを検索するディレクトリの依存関係。 |
runtime_library_search_directories
|
None ; または depset;
デフォルトは None ローダーが実行時にライブラリを検索するディレクトリの依存関係。 |
user_link_flags
|
None 、または sequence。デフォルトは None 。追加のリンクフラグ(linkopts)のリスト。 |
output_file
|
デフォルトは None です。オプションの出力ファイルのパス。 |
param_file
|
デフォルトは None です。省略可能なパラメータ ファイルのパス。 |
def_file
|
デフォルトは None です。.def ファイルのパスは省略可。 |
is_using_linker
|
デフォルトは True です。リンカーを使用する場合は true、アーカイバを使用する場合は False です。呼び出し元は、使用するアクション名と同期させる役割を担います(実行可能ファイルまたは動的ライブラリをリンクする場合は is_using_linker = True、静的ライブラリをアーカイブする場合は is_using_linker = False)。 |
is_linking_dynamic_library
|
デフォルトは False です。動的ライブラリを作成する場合は true、実行可能ライブラリまたは静的ライブラリの場合は False です。呼び出し元は、使用するアクション名と同期させる責任があります。b/65151735 が修正されると、このフィールドは削除されます。 |
must_keep_debug
|
デフォルトは True です。False に設定すると、bazel は「strip_debug_symbols」変数を公開します。これは通常、リンカーを使用して出力ファイルからデバッグ シンボルを削除するために使用されます。 |
use_test_only_flags
|
デフォルトは False です。true に設定すると、「is_cc_test」変数が設定されます。 |
is_static_linking_mode
|
デフォルトは 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 のリスト。 |
user_link_flags
|
None 、あるいは、string の depset、または string のシーケンス。デフォルトは None 文字列として渡されるユーザーリンクフラグ。[String]、[[String]]、depset(String) のいずれかを指定できます。後者は互換性のためにのみ保持されるため、おすすめしません。depset はフラット化されます。フラット化されていない 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 の依存関係。
|
libraries_to_link
|
None 、または sequence。デフォルトは None です。非推奨。このパラメータは非推奨で、まもなく削除されます。頼りにしないでください。これは --+incompatible_require_linker_input_cc_api で無効になります。このフラグを使用して、近く予定されている削除との互換性があることを確認します。LibraryToLink のリスト。 |
user_link_flags
|
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
|
必須 リンクするオブジェクト ファイルを含むコンパイル出力。 |
user_link_flags
|
デフォルトは [] です。リンク オプションの追加リスト。 |
linking_contexts
|
デフォルトは [] です。依存関係のライブラリ。これらのライブラリは、link() 呼び出しの出力アーティファクト(バイナリまたはライブラリ)にリンクされます。 |
name
|
必須 このメソッドによって作成されるアクションの出力アーティファクトに名前を付けるために使用されます。 |
language
|
デフォルトは 'c++' です。現時点では C++ のみがサポートされています。このパラメータは使用しないでください。 |
alwayslink
|
デフォルトは 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 。リンクするオブジェクト ファイルを含むコンパイルの出力。 |
user_link_flags
|
デフォルトは [] です。リンカー オプションの追加リスト。 |
linking_contexts
|
デフォルトは [] です。このルールで生成されるリンク コンテキストにリンクされる依存関係のコンテキスト。 |
name
|
必須 このメソッドによって作成されるアクションの出力アーティファクトに名前を付けるために使用されます。 |
language
|
デフォルトは 'c++' です。現時点では C++ のみがサポートされています。このパラメータは使用しないでください。 |
output_type
|
デフォルトは 'executable' です。「executable」または「dynamic_library」のいずれかになります。 |
link_deps_statically
|
デフォルトは True です。依存関係を静的にリンクする場合は True、動的に False は 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
|
デフォルトは [] です。 |