Action の作成関数を提供するモジュール。このモジュールには ctx.actions
を使用してアクセスします。
メンバー
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothingdo_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- write
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
を使用してアクション コマンドで展開できます。declare_directory の展開された内容には、通常のファイルとディレクトリのみを含めることができます。
パラメータ
パラメータ | 説明 |
---|---|
filename
|
string;
必須 「兄弟」が指定されていない場合、現在のパッケージを基準とした新しいディレクトリのパス。それ以外の場合は、ファイルのベース名(「兄弟」はディレクトリを定義します)。 |
sibling
|
File、または None (デフォルトは None )新しく宣言されたディレクトリと同じディレクトリにあるファイル。ファイルは現在のパッケージ内に存在する必要があります。 |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
が指定されていない場合、ファイル名はパッケージ ディレクトリを基準とします。指定されている場合は、ファイルは sibling
と同じディレクトリにあります。現在のパッケージの外部でファイルを作成することはできません。ファイルを宣言するだけでなく、ファイルを出力するアクションを別途作成する必要があります。このアクションを作成するには、返された File
オブジェクトをアクションの作成関数に渡す必要があります。
事前宣言された出力ファイルは、この関数を使用して宣言する必要はありません(宣言できません)。代わりに、ctx.outputs
から File
オブジェクトを取得できます。使用例をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
filename
|
string;
必須 「兄弟」が指定されていない場合、現在のパッケージを基準とする新しいファイルのパス。それ以外の場合は、ファイルのベース名(「兄弟」はディレクトリを決定します)。 |
sibling
|
File または None (デフォルトは None )新しく作成されたファイルと同じディレクトリにあるファイル。ファイルは現在のパッケージに存在する必要があります。 |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
パラメータ
パラメータ | 説明 |
---|---|
filename
|
string;
required 「兄弟」が指定されていない場合、現在のパッケージを基準とする新しいシンボリック リンクのパス。それ以外の場合は、ファイルのベース名(「兄弟」はディレクトリを定義します)。 |
sibling
|
ファイル、または None 。デフォルトは None 。新しく宣言されたシンボリック リンクと同じディレクトリにあるファイル。 |
do_nothing
None
actions.do_nothing(mnemonic, inputs=[])
パラメータ
パラメータ | 説明 |
---|---|
mnemonic
|
string;
必須 アクションの 1 語の説明(CppCompile や GoLink など)。 |
inputs
|
ファイルのシーケンスまたはdepset。デフォルトは [] 。アクションの入力ファイルのリスト。 |
expand_template
None
actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions
ディクショナリを使用して置き換えられます。テンプレート(または以前の置換の結果)に辞書のキーが出現するたびに、関連する値に置き換えられます。キーに特別な構文はありません。たとえば、角かっこを使用して競合を回避できます(例: {KEY}
)。使用例をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
template
|
File: 必須 テンプレート ファイル。UTF-8 でエンコードされたテキスト ファイルです。 |
output
|
ファイル。必須 UTF-8 でエンコードされたテキスト ファイルである出力ファイル。 |
substitutions
|
dict;
デフォルトは {} ですテンプレートの拡張時に行われる置換。 |
is_executable
|
bool;
デフォルトは False 出力ファイルを実行可能にするかどうか。 |
computed_substitutions
|
TemplateDict: デフォルトは unbound 。テンプレートを拡張するときに行う置換です。 |
run
None
actions.run(outputs, inputs=[], unused_inputs_list=None, executable, tools=unbound, arguments=[], mnemonic=None, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)
パラメータ
パラメータ | 説明 |
---|---|
outputs
|
ファイルのシーケンス。必須 アクションの出力ファイルのリスト。 |
inputs
|
ファイルのシーケンスまたはdepset。デフォルトは [] 。アクションの入力ファイルのリストまたは depset。 |
unused_inputs_list
|
ファイル、または None 。デフォルトは None 。アクションで使用されない入力のリストを含むファイル。 このファイルの内容(通常はアクションの出力の 1 つ)は、アクションの実行全体で使用されなかった入力ファイルのリストに対応しています。これらのファイルを変更しても、アクションの出力にはどのような影響も及びません。 |
executable
|
ファイル、文字列、FilesToRunProvider。必須 アクションによって呼び出される実行可能ファイル。 |
tools
|
sequence または depset。デフォルトは unbound です。アクションに必要なツールのリストまたは depset。ツールは、アクションで自動的に使用できる追加のランファイルを備えた入力です。リストが指定されている場合は、Files、FilesToRunProvider インスタンス、または Files の depset の異種コレクションにすることができます。リストに直接含まれ、ctx.executable から取得されたファイルには、実行ファイルが自動的に追加されます。depset を指定する場合は、Files のみを含める必要があります。どちらの場合も、depset 内のファイルは、runfile の ctx.executable と相互参照されません。 |
arguments
|
sequence: デフォルトは [] です。アクションのコマンドライン引数。文字列または actions.args() オブジェクトのリストにする必要があります。
|
mnemonic
|
string; または None :
デフォルトは None アクションの 1 単語の説明(例: CppCompile、GoLink)。 |
progress_message
|
文字列、または None 。デフォルトは None 。ビルド中にユーザーに表示する進行状況メッセージ(「foo.cc をコンパイルして foo.o を作成」など)。メッセージには %{label} 、%{input} 、%{output} のいずれかのパターンが含まれ、それぞれラベル文字列、最初の入力、出力のパスに置き換えられます。静的文字列ではなくパターンを使用することをおすすめします。パターンの方が効率的です。
|
use_default_shell_env
|
bool;
デフォルトは False OS に依存するいくつかの変数と --action_env で設定された変数で構成されるデフォルトのシェル環境をアクションで使用するかどうか。
|
env
|
dict、または None 。デフォルトは None です。環境変数の辞書を設定します。
|
execution_requirements
|
dict、または None (デフォルトは None )アクションのスケジュール設定に関する情報。役立つキーについては、タグをご覧ください。 |
input_manifests
|
シーケンス、または None 。デフォルトは None 。従来の引数。無視されます。 |
exec_group
|
文字列、または None 。デフォルトは None 。指定された実行グループの実行プラットフォームでアクションを実行します。指定しない場合、ターゲットのデフォルトの実行プラットフォームが使用されます。 |
shadowed_action
|
Action: デフォルトは None です。指定されたシャドウ アクションの入力と、アクションの入力リストと環境に追加された環境を使用して、アクションを実行します。アクション環境は、シャドウされたアクションの環境変数をオーバーライドできます。指定しない場合、アクションの入力と指定された環境のみを使用します。 |
resource_set
|
呼び出し可能、または None 。デフォルトは None です。リソースセット辞書を返すコールバック関数。アクションがローカルで実行されている場合に、実行時にリソース使用量を推定するために使用されます。 この関数は、OS 名を表す文字列(osx など)と、アクションへの入力の数を表す整数という 2 つの位置引数を受け取ります。返される辞書には、次のエントリが含まれます。各エントリは浮動小数点数または整数です。
このパラメータが コールバックはトップレベルである必要があります(ラムダ関数とネストされた関数は使用できません)。 |
toolchain
|
ラベル、文字列、または None 。デフォルトは unbound です。 このアクションで使用される実行可能ファイルまたはツールのツールチェーン タイプ。 実行可能ファイルとツールが toolchain から取得されていない場合は、このパラメータを「None」に設定します。 実行可能ファイルとツールが toolchain から取得される場合は、アクションが正しい実行プラットフォームで実行されるように toolchain タイプを設定する必要があります。 このアクションを作成するルールでは、この toolchain を「rule()」関数内で定義する必要があります。 「toolchain」パラメータと「exec_group」パラメータの両方が設定されている場合、「exec_group」が使用されます。「exec_group」で同じ toolchain が指定されていない場合、エラーが発生します。 |
run_shell
None
actions.run_shell(outputs, inputs=[], tools=unbound, arguments=[], mnemonic=None, command, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)
パラメータ
パラメータ | 説明 |
---|---|
outputs
|
ファイルのシーケンス。必須 アクションの出力ファイルのリスト。 |
inputs
|
ファイルのシーケンスまたはdepset。デフォルトは [] 。アクションの入力ファイルのリストまたは depset。 |
tools
|
ファイルのシーケンスまたはdepset。デフォルトは unbound 。アクションに必要なツールのリストまたは depset。ツールは、アクションで自動的に使用可能になる追加のランファイルを含む入力です。このリストには、Files または FilesToRunProvider のインスタンスを含めることができます。 |
arguments
|
sequence: デフォルトは [] です。アクションのコマンドライン引数。文字列または actions.args() オブジェクトのリストにする必要があります。Bazel は、この属性の要素をコマンドに引数として渡します。コマンドは、
|
mnemonic
|
文字列、または None 。デフォルトは None 。アクションの 1 語の説明(CppCompile や GoLink など)。 |
command
|
文字列、または文字列のシーケンス。必須 実行するシェルコマンド。これは、文字列(推奨)または文字列のシーケンス(非推奨)です。
(非推奨) Bazel では、genrules と同じシェルを使用してコマンドを実行します。 |
progress_message
|
文字列、または None 。デフォルトは None 。ビルド中にユーザーに表示する進行状況メッセージ(「foo.cc をコンパイルして foo.o を作成」など)。メッセージには %{label} 、%{input} 、%{output} のパターンを含めることができ、これらはそれぞれラベル文字列、最初の入力、出力のパスに置換されます。静的文字列ではなくパターンを使用することをおすすめします。パターンの方が効率的です。
|
use_default_shell_env
|
bool: デフォルトは False デフォルトのシェル環境を使用するかどうかを指定します。デフォルトのシェル環境は、いくつかの OS 依存変数と --action_env で設定された変数で構成されます。
|
env
|
dict、または None 。デフォルトは None です。環境変数の辞書を設定します。
|
execution_requirements
|
dict または None 。デフォルトは None です。アクションをスケジュールするための情報。役立つキーについては、タグをご覧ください。 |
input_manifests
|
シーケンス、または None 。デフォルトは None 。従来の引数。無視されます。 |
exec_group
|
文字列、または None 。デフォルトは None 。指定された実行グループの実行プラットフォームでアクションを実行します。指定しない場合、ターゲットのデフォルトの実行プラットフォームが使用されます。 |
shadowed_action
|
アクション。デフォルトは None 。指定されたシャドウされたアクションの検出された入力をアクションの入力リストに追加して、アクションを実行します。指定しない場合は、アクションの入力のみを使用します。 |
resource_set
|
呼び出し可能関数、または None 。デフォルトは None 。ローカルで実行する場合のリソース使用量を推定するコールバック関数。 ctx.actions.run() をご覧ください。
|
toolchain
|
ラベルまたは文字列、または None 。デフォルトは unbound このアクションで使用される実行可能ファイルまたはツールのツールチェーン タイプ。 実行可能ファイルとツールが toolchain から取得されていない場合は、このパラメータを「None」に設定します。 実行可能ファイルとツールが toolchain から取得される場合は、アクションが正しい実行プラットフォームで実行されるように toolchain タイプを設定する必要があります。 このアクションを作成するルールでは、この toolchain を「rule()」関数内で定義する必要があります。 「toolchain」パラメータと「exec_group」パラメータの両方が設定されている場合、「exec_group」が使用されます。「exec_group」で同じ toolchain が指定されていない場合、エラーが発生します。 |
symlink
None
actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)
この関数は、target_file
または target_path
のいずれか 1 つを指定して呼び出す必要があります。
target_file
を使用する場合は、output
を declare_file()
または declare_directory()
で宣言し、target_file
の型と一致させます。これにより、シンボリック リンクが target_file
を参照するようになります。Bazel は、シンボリック リンクのターゲットまたはその内容が変更されるたびに、このアクションの出力を無効にします。
それ以外の場合は、target_path
を使用する場合は declare_symlink()
で output
を宣言します。この場合、シンボリック リンクは target_path
を参照します。Bazel はシンボリック リンクを解決しません。このアクションの出力が無効になるのは、シンボリック リンクのテキスト コンテンツ(readlink()
の値)が変更された場合のみです。特に、ダングリング シンボリック リンクの作成に使用できます。
パラメータ
パラメータ | 説明 |
---|---|
output
|
ファイル。必須 このアクションの出力。 |
target_file
|
ファイル、または None (デフォルトは None )出力シンボリック リンクが参照するファイル。 |
target_path
|
string、または None 。デフォルトは None 。出力シンボリック リンクが参照する正確なパス。正規化などの処理は適用されません。 |
is_executable
|
bool: デフォルトは False です。target_file でのみ使用でき、target_path では使用できません。true の場合、アクションの実行時に target_file のパスを確認して実行可能かどうかを判断し、実行可能でない場合エラーを報告します。is_executable を False に設定しても、ターゲットが実行可能にならないわけではありません。検証が行われないだけです。ビルド時にダングル シンボリック リンクが存在しない可能性があるため、この機能は |
progress_message
|
string: None : デフォルトは None ですビルド中にユーザーに表示される進行状況メッセージ。 |
template_dict
TemplateDict actions.template_dict()
write
None
actions.write(output, content, is_executable=False)
expand_template
の使用を検討してください。
パラメータ
パラメータ | 説明 |
---|---|
output
|
ファイル。必須 出力ファイル。 |
content
|
string: Args:
ファイルの内容。文字列または actions.args() オブジェクトのいずれかです。
|
is_executable
|
bool;
デフォルトは False 出力ファイルを実行可能にするかどうか。 |