web-dev-qa-db-ja.com

Bazelによって実行されるコマンドを取得するにはどうすればよいですか

Bazelに、クリーン後のビルド中に実行されるコマンドラインから実行できるすべてのコマンドを一覧表示、出力、表示などする方法があるかどうか疑問に思いました。画面やファイルなどに出力してもかまいません。必要に応じてマッサージして使える形にします。

Bazelの実行中に画面出力をキャプチャしました。これにより、何が行われているのかがわかりますが、しませんコマンドラインで実行できるコマンドが表示されます。コマンドには、変数を表示するのではなく、すべてのコマンドオプションを含める必要があります。

これが不可能な場合、Bazelはオープンソースであるため、コード内に実行されるコマンドを表す行があり、実行可能なコマンドを出力するようにBazelを変更できます。

Bazel内のqueryコマンドを認識しており、それを使用して依存関係図を生成しました。これをクエリコマンドとして実行できれば、さらに良いでしょう。

TLDR;

私の目標は、WindowsでBazelを使用してTensorFlowを構築することです。はい、私はそれを行わないすべての問題と理由を知っており、仮想マシンまたはDockerを介してWindowsにTensorFlowを正常にインストールしました。 Cygwinから始めてWindowsでBazelを構築することを試みましたが、パッケージでのインストールに慣れていて、CygwinがパッケージでNiceを再生しないため、手に負えなくなったので、手作業でBazelを構築しようとしました。そしてそれは泥沼に変わっていました。そのため、私は現在、LinuxでTensorFlowを構築するためにBazelが行うことを複製することにより、WindowsでTensorFlowを手動で構築しようとしています。

19
Guy Coder

正解です。-s--subcommands)オプションを使用できます。

bazel build -s //foo

https://docs.bazel.build/versions/master/user-manual.html#flag--subcommands を参照してください。

ユースケースでは、出力をファイルにリダイレクトしてから、ライブラリ/バイナリパスをWindowsの同等のパスにグローバルに置き換えることをお勧めします。

追跡することをお勧めします https://github.com/bazelbuild/bazel/issues/276 (Windowsサポート)、おそらくしばらく時間がかかりますが。

22
kristina