CMP0165

添加到 3.30 版本中。

enable_language() 不得在 project() 之前调用。

在 CMake 3.29 及更低版本中,如果一个项目在第一次调用 project() 之前调用 enable_language(),则该语言将被启用,但可能会使用一些未设置的详细信息,这些详细信息需要被设置。在 CMake 3.30 及更高版本中,enable_language() 宁可拒绝此情况,并在其检测到 project() 尚未被调用时以严重错误来停止。此策略为 enable_language()project() 之前被调用并且尚未更新为按照所需顺序调用这些命令时碰巧起作用的项目提供兼容性。

对于此策略,OLD 行为允许在 project() 之前调用 enable_language()。对于此策略,NEW 行为在这样情况下以严重错误失败。

此策略在 CMake 3.30 版本中被引入。它可能由 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 将发出警告,并使用 OLD 行为。

注释

策略的 OLD 行为 deprecated by definition,并且可能会在 CMake 的未来版本中移除。