File: CMP0028.rst

package info (click to toggle)
cmake 4.2.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 152,336 kB
  • sloc: ansic: 403,896; cpp: 303,920; sh: 4,105; python: 3,583; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 111; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (28 lines) | stat: -rw-r--r-- 1,271 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CMP0028
-------

.. |REMOVED_IN_CMAKE_VERSION| replace:: 4.0
.. include:: include/REMOVED_PROLOGUE.rst

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
.. |WARNED_OR_DID_NOT_WARN| replace:: warned
.. include:: include/REMOVED_EPILOGUE.rst