CMAKE_SYSTEM_IGNORE_PATH¶
分号分隔的列表,其中包含各种 find...()
命令要忽略的目录。
对于 find_program()
, find_library()
, find_file()
和 find_path()
,在列出的目录中找到的任何文件都将被忽略。列出的目录不递归应用,因此要忽略的任何子目录也必须显式列出。CMAKE_SYSTEM_IGNORE_PATH
不影响这四个命令使用的搜索前缀。要忽略搜索前缀下的单个路径(例如 bin
、include
、lib
等),每个路径都必须在 CMAKE_SYSTEM_IGNORE_PATH
中列为完整的绝对路径。CMAKE_SYSTEM_IGNORE_PREFIX_PATH
提供了一种更合适的方式来忽略整个搜索前缀。
find_package()
也受 CMAKE_SYSTEM_IGNORE_PATH
影响,但仅限于 Config mode 搜索。在指定的目录中找到的任何 <Name>Config.cmake
或 <name>-config.cmake
文件都将被忽略。此外,出于向后兼容的原因,将跳过在 CMAKE_SYSTEM_IGNORE_PATH
中找到的任何搜索前缀,但新代码应优先使用 CMAKE_SYSTEM_IGNORE_PREFIX_PATH
来忽略前缀。
在交叉编译环境中,忽略搜索位置可能很有用,在这些环境中,某些系统目录包含不兼容但可能可链接的库。例如,在交叉编译的集群环境中,这允许用户忽略包含用于前端机器的库的目录。
CMAKE_SYSTEM_IGNORE_PATH
由 CMake 填充,作为其平台和工具链设置的一部分。其目的是忽略包含用于主机而不是目标平台的不兼容二进制文件的位置。项目或最终用户不应修改此变量,而应使用 CMAKE_IGNORE_PATH
代替。
另请参阅以下变量