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
  • 当没有显式指定 CMAKE_OSX_SYSROOT 时,ENV{SDKROOT}/usr

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