自訂建置目標
雖然 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
搜尋結果如下