CMAKE_SYSTEM_IGNORE_PATH

用于被各种 find...() 命令忽略的目录的分号分隔列表

对于 find_program()find_library()find_file()find_path(),在列表中目录中找到的任何文件都将被忽略。列出的目录不递归应用,因此任何要忽略的子目录也必须显式列出。CMAKE_SYSTEM_IGNORE_PATH 不影响这四个命令使用的搜索前缀。要忽略搜索前缀下的单个路径(例如 binincludelib 等),必须将每个路径以完整绝对路径的形式列在 CMAKE_SYSTEM_IGNORE_PATH 中。 CMAKE_SYSTEM_IGNORE_PREFIX_PATH 提供了一种更合适的方式来忽略整个搜索前缀。

find_package() 也受 CMAKE_SYSTEM_IGNORE_PATH 的影响,但仅限于Config 模式搜索。在指定的目录中找到的任何 <Name>Config.cmake<name>-config.cmake 文件都将被忽略。此外,为了向后兼容,CMAKE_SYSTEM_IGNORE_PATH 中找到的任何搜索前缀都将被跳过,但新代码应优先使用 CMAKE_SYSTEM_IGNORE_PREFIX_PATH 来忽略前缀。

忽略搜索位置在交叉编译环境中可能很有用,因为某些系统目录可能包含不兼容但可能可链接的库。例如,在交叉编译的集群环境中,这允许用户忽略包含前端机器所需库的目录。

CMAKE_SYSTEM_IGNORE_PATH 是 CMake 在其平台和工具链设置过程中填充的。其目的是忽略包含与目标平台不兼容而是用于宿主平台的二进制文件的位置。项目或最终用户不应修改此变量,而应改用 CMAKE_IGNORE_PATH

另请参阅以下变量