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