執行目標

有時候您需要一個只執行外部命令的目標。例如,您可能有一個建置目標來重新格式化您的原始程式碼、執行 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 陣列中的所有其他條目都會不變地傳遞給 inspector 腳本,因此您可以執行類似以下的操作

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

搜尋結果是