自訂建置目標

雖然 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 並將其安裝到 ${prefix}/subdir/output.bin。變數替換的工作方式與來源產生相同。

有關此主題的更多資訊,請參閱產生來源

關於命令調用的詳細資訊

Meson 只允許您指定一個要執行的命令。這是經過設計的,因為在建置定義檔案中編寫 shell 管線會導致程式碼非常難以維護。如果您的命令需要多個步驟,您需要編寫一個執行所有必要工作的包裝腳本。

執行此操作時,您需要注意以下問題

  • 不要假設命令是在任何特定目錄中調用的
  • 在子目錄 subdir 中定義的目標 target 檔案 outfile 必須寫入 build_dir/subdir/foo.dat
  • 如果您需要一個用於臨時檔案的子目錄,請使用 build_dir/subdir/target.dir

搜尋結果如下