CMAKE_SYSTEM_PREFIX_PATH

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

默认情况下,该变量包含当前系统的系统目录、CMAKE_INSTALL_PREFIX 以及 CMAKE_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