CMP0051 — CMake 4.3.1 Documentation

# CMP0051

Warning

The `OLD` behavior of this policy was removed in CMake version 4.0. This policy must be set to `NEW` by a call to `cmake_minimum_required()` or `cmake_policy()`.

Added in version 3.1.

List `TARGET_OBJECTS` in SOURCES target property.

CMake 3.0 and lower did not include the `TARGET_OBJECTS` `generator expression` when returning the `SOURCES` target property.

Configure-time CMake code is not able to handle generator expressions. If using the `SOURCES` target property at configure time, it may be necessary to first remove generator expressions using the `string(GENEX_STRIP)` command. Generate-time CMake code such as `file(GENERATE)` can handle the content without stripping.

The `OLD` behavior for this policy is to omit `TARGET_OBJECTS` expressions from the `SOURCES` target property. The `NEW` behavior for this policy is to include `TARGET_OBJECTS` expressions in the output.

This policy was introduced in CMake version 3.1. Prior to removal in CMake version 4.0, it could be set by `cmake_policy()` or `cmake_minimum_required()`. If it was not set, CMake warned, and used `OLD` behavior.