CMAKE_SYSTEM_IGNORE_PATH

分號分隔的列表,其中包含各種 find...() 命令應忽略的目錄。

對於 find_program()find_library()find_file()find_path(),在列出的目錄中找到的任何檔案都將被忽略。列出的目錄不以遞迴方式應用,因此任何要忽略的子目錄也必須明確列出。CMAKE_SYSTEM_IGNORE_PATH 不會影響這四個命令使用的搜尋前綴。若要忽略搜尋前綴下的個別路徑(例如 binincludelib 等),則每個路徑都必須在 CMAKE_SYSTEM_IGNORE_PATH 中列為完整的絕對路徑。CMAKE_SYSTEM_IGNORE_PREFIX_PATH 提供了一種更適合的方式來忽略整個搜尋前綴。

find_package() 也會受到 CMAKE_SYSTEM_IGNORE_PATH 的影響,但僅適用於Config 模式搜尋。在指定的目錄中找到的任何 <Name>Config.cmake<name>-config.cmake 檔案都將被忽略。此外,出於向後相容性的原因,將跳過在 CMAKE_SYSTEM_IGNORE_PATH 中找到的任何搜尋前綴,但新程式碼應優先使用 CMAKE_SYSTEM_IGNORE_PREFIX_PATH 來忽略前綴。

在交叉編譯環境中,忽略搜尋位置可能很有用,在這些環境中,某些系統目錄包含不相容但可能可連結的程式庫。例如,在交叉編譯叢集環境中,這允許使用者忽略包含用於前端機器的程式庫的目錄。

CMAKE_SYSTEM_IGNORE_PATH 由 CMake 在其平台和工具鏈設定中填入。其目的是忽略包含用於主機而非目標平台的不相容二進制檔案的位置。專案或最終使用者不應修改此變數,他們應改用 CMAKE_IGNORE_PATH

另請參閱以下變數