CMAKE_SYSTEM_PREFIX_PATH

分號分隔的清單,指定 find_package()find_program()find_library()find_file()find_path() 命令要搜尋的安裝前綴目錄。每個命令都會根據其自身的文件,添加適當的子目錄(例如 binlibinclude)。

預設情況下,此變數包含目前系統的系統目錄、CMAKE_INSTALL_PREFIXCMAKE_STAGING_PREFIX。透過在第一次呼叫 project() 之前設定 CMAKE_FIND_NO_INSTALL_PREFIX 變數,可以排除安裝和暫存前綴。

CMAKE_SYSTEM_PREFIX_PATH 中包含的系統目錄是通常包含已安裝軟體的位置。例如,基於 UNIX 的平台為 /usr/local。除了標準平台位置外,CMake 還會根據環境變數將值添加到 CMAKE_SYSTEM_PREFIX_PATH。CMake 使用的環境變數和搜尋位置可能會隨著時間的推移而演變,因為平台及其慣例也會演變。以下提供 CMake 搜尋的環境變數和位置的指示性列表,但它們可能會發生變化

CrayLinuxEnvironment
  • ENV{SYSROOT_DIR}/

  • ENV{SYSROOT_DIR}/usr

  • ENV{SYSROOT_DIR}/usr/local

Darwin
  • ENV{SDKROOT}/usr 當未明確指定 CMAKE_OSX_SYSROOT 時。

OpenBSD
  • ENV{LOCALBASE}

Unix
  • 當使用 conda 編譯器時的 ENV{CONDA_PREFIX}

具有 MinGW 工具鏈的 MSYSTEM 環境

在 3.28 版本中新增。

  • ENV{MSYSTEM_PREFIX}/local

  • ENV{MSYSTEM_PREFIX}

Windows
  • ENV{ProgramW6432}

  • ENV{ProgramFiles}

  • ENV{ProgramFiles(x86)}

  • ENV{SystemDrive}/Program Files

  • ENV{SystemDrive}/Program Files (x86)

CMAKE_SYSTEM_PREFIX_PATH 應由專案修改;請使用 CMAKE_PREFIX_PATH 來達成此目的。

另請參閱 CMAKE_SYSTEM_INCLUDE_PATHCMAKE_SYSTEM_LIBRARY_PATHCMAKE_SYSTEM_PROGRAM_PATHCMAKE_SYSTEM_IGNORE_PATH