CMAKE_SYSTEM_PREFIX_PATH

分号分隔的列表,包含用于搜索的安装前缀目录,用于 find_package(), find_program(), find_library(), find_file(), 和 find_path() 命令。每个命令都会根据其自身文档中指定的适当子目录(如 bin, lib, 或 include)进行添加。

默认情况下,这包含当前系统的系统目录、 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}/usrCMAKE_OSX_SYSROOT 未显式指定时。

OpenBSD
  • ENV{LOCALBASE}

Unix
  • ENV{CONDA_PREFIX} 使用 conda 编译器时

MSYSTEM 环境,带有 MinGW 工具链

版本 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_PATH, CMAKE_SYSTEM_LIBRARY_PATH, CMAKE_SYSTEM_PROGRAM_PATH, 和 CMAKE_SYSTEM_IGNORE_PATH