mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Every policy's documentation has a paragraph on what version of CMake introduced it, how to set the policy, and whether CMake warns if the policy is not set. The wording of this paragraph has diverged across policies over time. Factor the paragraph out into a standard advice document included by every policy.
28 lines
1.2 KiB
ReStructuredText
28 lines
1.2 KiB
ReStructuredText
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.
|
|
|
|
See also the :prop_tgt:`LINK_LIBRARIES_ONLY_TARGETS` target property.
|
|
|
|
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.
|
|
|
|
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.0
|
|
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
|
|
.. include:: STANDARD_ADVICE.txt
|
|
|
|
.. include:: DEPRECATED.txt
|