CMP0112ΒΆ

New in version 3.19.

Target file component generator expressions do not add target dependencies.

The following target-based generator expressions that query for directory or file name components no longer add a dependency on the evaluated target.

  • TARGET_FILE_NAME

  • TARGET_FILE_DIR

  • TARGET_LINKER_FILE_BASE_NAME

  • TARGET_LINKER_FILE_NAME

  • TARGET_LINKER_FILE_DIR

  • TARGET_SONAME_FILE_NAME

  • TARGET_SONAME_FILE_DIR

  • TARGET_PDB_FILE_NAME

  • TARGET_PDB_FILE_DIR

  • TARGET_BUNDLE_DIR

  • TARGET_BUNDLE_DIR_NAME

  • TARGET_BUNDLE_CONTENT_DIR

In CMake 3.18 and lower a dependency on the evaluated target of the above generator expressions would always be added. CMake 3.19 and above prefer to not add this dependency. This policy provides compatibility for projects that have not been updated to expect the new behavior. The policy setting is recorded on each target when it is created, and decides whether generator expressions referencing that target imply a dependency on it.

The OLD behavior for this policy is to add a dependency on the evaluated target for the above generator expressions. The NEW behavior of this policy is to not add a dependency on the evaluated target for the above generator expressions.

This policy was introduced in CMake version 3.19. Unlike many policies, CMake version 3.27.9 does not warn by default when this policy is not set and simply uses OLD behavior. See documentation of the CMAKE_POLICY_WARNING_CMP0112 variable to control the warning.

Note

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