https://github.com/Kitware/CMake
Raw File
Tip revision: c69d4b177fb3f6ebd22cddec919dbe1c30f43714 authored by Brad King on 11 March 2021, 14:23:18 UTC
CMake 3.20.0-rc4
Tip revision: c69d4b1
CMP0112.rst
CMP0112
-------

.. versionadded:: 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_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 ``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 |release| does *not* warn by default when this policy
is not set and simply uses ``OLD`` behavior.  See documentation of the
:variable:`CMAKE_POLICY_WARNING_CMP0112 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
variable to control the warning.

.. include:: DEPRECATED.txt
back to top