CMP0028
-------

Double colon in target name means ``ALIAS`` or ``IMPORTED`` target.

CMake 2.8.12 and lower allowed the use of targets and files with double
colons in :command:`target_link_libraries`, with some buildsystem generators.

The use of double-colons is a common pattern used to namespace ``IMPORTED``
targets and ``ALIAS`` targets.  When computing the link dependencies of
a target, the name of each dependency could either be a target, or a file
on disk.  Previously, if a target was not found with a matching name, the name
was considered to refer to a file on disk.  This can lead to confusing error
messages if there is a typo in what should be a target name.

The ``OLD`` behavior for this policy is to search for targets, then files on
disk, even if the search term contains double-colons.  The ``NEW`` behavior
for this policy is to issue a ``FATAL_ERROR`` if a link dependency contains
double-colons but is not an ``IMPORTED`` target or an ``ALIAS`` target.

This policy was introduced in CMake version 3.0.  CMake version
|release| warns when the policy is not set and uses ``OLD`` behavior.  Use
the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.

.. include:: DEPRECATED.txt
