CMP0051 — CMake 3.16.2 Documentation

# CMP0051

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. CMake version 3.16.2 warns when the policy is not set and uses `OLD` behavior. Use the `cmake_policy()` command to set it to `OLD` or `NEW` explicitly.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.