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 based 平台的 /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