CMP0165 — CMake 4.0.1 Documentation (original) (raw)
Added in version 3.30.
enable_language() must not be called before project().
In CMake 3.29 and below, if a project called enable_language()before the first call to project(), the language would be enabled but possibly using unset details that were expected to be set. In CMake 3.30 and above, enable_language() prefers to reject this case and stop with a fatal error instead if it detects that project()has not yet been called. This policy provides compatibility for projects that happened to work when enable_language() was called beforeproject() and have not been updated to call these commands in the required order.
The OLD
behavior for this policy is to allow enable_language()to be called before project(). The NEW
behavior for this policy is to fail with a fatal error in such cases.
This policy was introduced in CMake version 3.30. It may be set by cmake_policy() or cmake_minimum_required(). If it is not set, CMake warns, and uses OLD
behavior.