mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -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.
35 lines
1.5 KiB
ReStructuredText
35 lines
1.5 KiB
ReStructuredText
CMP0037
|
|
-------
|
|
|
|
Target names should not be reserved and should match a validity pattern.
|
|
|
|
CMake 2.8.12 and lower allowed creating targets using :command:`add_library`,
|
|
:command:`add_executable` and :command:`add_custom_target` with unrestricted
|
|
choice for the target name. Newer cmake features such
|
|
as :manual:`cmake-generator-expressions(7)` and some
|
|
diagnostics expect target names to match a restricted pattern.
|
|
|
|
Target names may contain upper and lower case letters, numbers, the underscore
|
|
character (``_``), dot(``.``), plus(``+``) and minus(``-``).
|
|
As a special case, ``ALIAS`` and ``IMPORTED`` targets may contain
|
|
two consecutive colons.
|
|
|
|
Target names reserved by one or more CMake generators are not allowed.
|
|
Among others these include ``all``, ``clean``, ``help``, and ``install``.
|
|
|
|
Target names associated with optional features, such as ``test`` and
|
|
``package``, may also be reserved. CMake 3.10 and below always reserve them.
|
|
CMake 3.11 and above reserve them only when the corresponding feature is
|
|
enabled (e.g. by including the :module:`CTest` or :module:`CPack` modules).
|
|
|
|
The ``OLD`` behavior for this policy is to allow creating targets with
|
|
reserved names or which do not match the validity pattern.
|
|
The ``NEW`` behavior for this policy is to report an error
|
|
if an add_* command is used with an invalid target name.
|
|
|
|
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.0
|
|
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
|
|
.. include:: STANDARD_ADVICE.txt
|
|
|
|
.. include:: DEPRECATED.txt
|