執行目標
有時候您需要一個只執行外部命令的目標。例如,您可能有一個建置目標來重新格式化您的原始程式碼、執行 cppcheck
或類似的操作。在 Meson 中,這是透過所謂的執行目標來完成的。
建議的做法是將您要執行的命令寫入腳本檔案。以下是一個範例腳本。
#!/bin/sh
cd "${MESON_SOURCE_ROOT}"
inspector_command -o "${MESON_BUILD_ROOT}/inspection_result.txt"
請注意兩個環境變數 MESON_SOURCE_ROOT
和 MESON_BUILD_ROOT
。這些是您專案原始碼和建置目錄的絕對路徑,並且由 Meson 自動設定。除了這些之外,Meson 還設定了變數 MESON_SUBDIR
,它指向指定執行命令的子目錄。大多數命令不需要設定這個。
請注意腳本如何以 cd 命令進入原始碼目錄開始。Meson 不保證腳本在任何特定目錄中執行。您是否需要執行相同的操作取決於您的自訂目標要執行什麼。
為了將其設為執行目標,我們將其寫入名為 scripts/inspect.sh
的腳本檔案,並在頂層 Meson 檔案中指定它,如下所示。
run_target('inspector',
command : 'scripts/inspect.sh')
執行目標預設不會執行。要執行它,請執行以下命令。
$ meson compile inspector
run_target
的 command
陣列中的所有其他條目都會不變地傳遞給 inspector 腳本,因此您可以執行類似以下的操作
run_target('inspector',
command : ['scripts/inspect.sh', '--exclude', 'tests'])
搜尋結果是