CMP0165¶
添加于 3.30 版本。
enable_language()
必须在 project()
之前调用。
在 CMake 3.29 及更低版本中,如果在首次调用 project()
之前调用 enable_language()
,语言将被启用,但可能使用预期会被设置但实际上未设置的细节。在 CMake 3.30 及更高版本中,如果检测到 project()
尚未被调用,enable_language()
倾向于拒绝这种情况,并停止并出现致命错误。此策略为那些在 project()
之前调用 enable_language()
且尚未更新以按要求的顺序调用这些命令的项目提供兼容性。
此策略的 OLD
行为是允许在 project()
之前调用 enable_language()
。此策略的 NEW
行为是在这种情况下失败并出现致命错误。
此策略在 CMake 3.30 版本中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 将发出警告,并使用 OLD
行为。
注意
策略的 OLD
行为根据定义是 deprecated by definition
,并可能在未来的 CMake 版本中移除。