カスタムビルドターゲット

Mesonは可能な限り多くの言語とツールをサポートしようと試みますが、すべての特殊ケースをカバーする方法はありません。このような場合には、カスタムビルドターゲットを定義できます。使用方法を以下に示します。

comp = find_program('custom_compiler')

infile = 'source_code.txt'
outfile = 'output.bin'

mytarget = custom_target('targetname',
  output : outfile,
  input : infile,
  command : [comp, '@INPUT@', '@OUTPUT@'],
  install : true,
  install_dir : 'subdir')

これによってバイナリ`output.bin`が生成され、`output.bin`の`$ {prefix} / subdir/`にインストールされます。変数置換は、ソース生成の場合と同様に機能します。

Generating Sourcesを参照して、このトピックの詳細情報を参照してください。

コマンド呼び出しの詳細

Mesonは実行するコマンドを1つだけ指定できます。これは、設計上の仕様です。シェルパイプラインをビルド定義ファイルに記述すると、メンテナンスが非常に困難なコードになります。複数の手順が必要なコマンドがある場合は、必要な作業をすべて行うラッパースクリプトを作成する必要があります。

これを行う場合は、次の問題に注意する必要があります

  • コマンドが特定のディレクトリで呼び出されると想定しないでください
  • サブディレクトリ`subdir`で定義された、`target`という名前のファイル`outfile`のターゲットは`build_dir/subdir/foo.dat`に書き込まれる必要があります
  • 一時ファイル用のサブディレクトリが必要な場合は、`build_dir/subdir/target.dir`を使用してください

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