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
  • ENV{CONDA_PREFIX} 当使用 conda 编译器时

带有 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 文件 (x86)

CMAKE_SYSTEM_PREFIX_PATH 不应被项目修改;使用 CMAKE_PREFIX_PATH 进行此操作。

另请参见 CMAKE_SYSTEM_INCLUDE_PATHCMAKE_SYSTEM_LIBRARY_PATHCMAKE_SYSTEM_PROGRAM_PATHCMAKE_SYSTEM_IGNORE_PATH