CMAKE_SYSTEM_PREFIX_PATH¶
用分号分隔的列表,指定了通过 find_package()
、find_program()
、find_library()
、find_file()
和 find_path()
命令搜索的安装前缀。每个命令都会添加相应的子目录(例如 bin
、lib
或 include
),如它自己的文档中所指定。
默认情况下,它包含当前系统、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
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_PATH
、CMAKE_SYSTEM_LIBRARY_PATH
、CMAKE_SYSTEM_PROGRAM_PATH
和 CMAKE_SYSTEM_IGNORE_PATH
。