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}/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_PATHCMAKE_SYSTEM_LIBRARY_PATHCMAKE_SYSTEM_PROGRAM_PATHCMAKE_SYSTEM_IGNORE_PATH