CMP0041

带有生成器表达式的相对包含的错误。

在 CMake 2.8.12 及更低版本中,诊断会静默忽略 INTERFACE_INCLUDE_DIRECTORIES 中的条目,如果在任意位置包含生成器表达式。

目标属性中的路径条目不应是相对的。高级 API 应通过添加源目录或安装目录前缀(视情况而定)来确保这一点。

作为额外的诊断,INTERFACE_INCLUDE_DIRECTORIES 为安装位置在 IMPORTED 目标上生成,不应包含源目录或构建目录中的路径。

此策略的 OLD 行为是如果相对路径条目包含生成器表达式,则忽略此条目。此策略的 NEW 行为是如果生成器表达式出现在其他位置且路径是相对的,则报告错误。

此策略在 CMake 3.0 版中引入。它可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 将发出警告并使用 OLD 行为。

注意

策略的 OLD 行为根据定义已弃用,并且可能会在未来的 CMake 版本中被移除。