ターゲットの実行

外部コマンドを実行するだけのターゲットが必要になることがあります。例としてソースコードの再フォーマットや cppcheck の実行、その他の類似操作を実行するビルドターゲットが挙げられます。Meson では、これをいわゆる「実行ターゲット」を使用して実現できます。

この操作を実行する推奨される方法は、実行するコマンドをスクリプトファイルに書き込むことです。次にスクリプトの例を示します。

#!/bin/sh

cd "${MESON_SOURCE_ROOT}"
inspector_command -o "${MESON_BUILD_ROOT}/inspection_result.txt"

環境変数 MESON_SOURCE_ROOTMESON_BUILD_ROOT に注意してください. これらはプロジェクトのソースディレクトリとビルドディレクトリへの絶対パスで、Meson によって自動的に設定されます. さらに、Meson は MESON_SUBDIR という変数も設定します。これは実行コマンドが指定されたサブディレクトリを指します. 大抵のコマンドではこれを設定する必要はありません。

ソースディレクトリに cd することでスクリプトが開始されることに注意してください. Meson は、スクリプトが特定のディレクトリで実行されることを保証しません. これと同じ処理が必要かどうかは、カスタムターゲットの用途によって異なります.

これを実行ターゲットにするために、scripts/inspect.sh というスクリプトファイルに書き込んで、次のようにトップレベルの Meson ファイルに指定します.

run_target('inspector',
  command : 'scripts/inspect.sh')

実行ターゲットはデフォルトでは実行されません. 実行するには、次のコマンドを実行します.

$ meson compile inspector

run_targetcommand 配列のその他の追加のエントリは検査スクリプトに変更を加えることなく渡されるので、次のように実行できます.

run_target('inspector',
  command : ['scripts/inspect.sh', '--exclude', 'tests'])

検索結果は次のとおりです.