mirror of
https://github.com/reactos/CMake.git
synced 2024-11-25 04:29:52 +00:00
a41c0a9dcb
These policies are triggered by the use of a particular compiler rather than outdated CMake code in a project. Avoid warning in every project that enables a language by not displaying the policy warning by default. Add variable CMAKE_POLICY_WARNING_CMP<NNNN> to control the warning explicitly; otherwise enable the warning with --debug-output or --trace. This breaks with strict policy convention because it does not provide developers with any warning about the behavior change by default. Existing projects will continue to build without a warning or change in behavior. When a developer changes the minimum required version of CMake in a project to a sufficiently high value (3.0), the project will suddenly get the new compiler id and may break, but at least the breakage comes with a change to the project rather than the version of CMake used to build it. Breaking strict policy convention is worthwhile in this case because very few projects will be affected by the behavior change but every project would have to see the warning if it were enabled by default.
29 lines
1.3 KiB
ReStructuredText
29 lines
1.3 KiB
ReStructuredText
CMP0047
|
|
-------
|
|
|
|
Use ``QCC`` compiler id for the qcc drivers on QNX.
|
|
|
|
CMake 3.0 and above recognize that the QNX qcc compiler driver is
|
|
different from the GNU compiler.
|
|
CMake now prefers to present this to projects by setting the
|
|
:variable:`CMAKE_<LANG>_COMPILER_ID` variable to ``QCC`` instead
|
|
of ``GNU``. However, existing projects may assume the compiler id for
|
|
QNX qcc is just ``GNU`` as it was in CMake versions prior to 3.0.
|
|
Therefore this policy determines for QNX qcc which compiler id to
|
|
report in the :variable:`CMAKE_<LANG>_COMPILER_ID` variable after
|
|
language ``<LANG>`` is enabled by the :command:`project` or
|
|
:command:`enable_language` command. The policy must be set prior
|
|
to the invocation of either command.
|
|
|
|
The OLD behavior for this policy is to use the ``GNU`` compiler id
|
|
for the qcc and QCC compiler drivers. The NEW behavior for this policy
|
|
is to use the ``QCC`` compiler id for those drivers.
|
|
|
|
This policy was introduced in CMake version 3.0. Use the
|
|
:command:`cmake_policy` command to set this policy to OLD or NEW explicitly.
|
|
Unlike most 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_CMP0047 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
|
|
variable to control the warning.
|