diff options
Diffstat (limited to 'Help/manual/cmake-policies.7.rst')
-rw-r--r-- | Help/manual/cmake-policies.7.rst | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst new file mode 100644 index 0000000..02f596b --- /dev/null +++ b/Help/manual/cmake-policies.7.rst @@ -0,0 +1,101 @@ +.. cmake-manual-description: CMake Policies Reference + +cmake-policies(7) +***************** + +.. only:: html or latex + + .. contents:: + +Introduction +============ + +Policies in CMake are used to preserve backward compatible behavior +across multiple releases. When a new policy is introduced, newer CMake +versions will begin to warn about the backward compatible behavior. It +is possible to disable the warning by explicitly requesting the OLD, or +backward compatible behavior using the :command:`cmake_policy` command. +It is also possible to request NEW, or non-backward compatible behavior +for a policy, also avoiding the warning. Each policy can also be set to +either NEW or OLD behavior explicitly on the command line with the +:variable:`CMAKE_POLICY_DEFAULT_CMP<NNNN>` variable. + +The :command:`cmake_minimum_required` command does more than report an +error if a too-old version of CMake is used to build a project. It +also sets all policies introduced in that CMake version or earlier to +NEW behavior. To manage policies without increasing the minimum required +CMake version, the :command:`if(POLICY)` command may be used: + +.. code-block:: cmake + + if(POLICY CMP0990) + cmake_policy(SET CMP0990 NEW) + endif() + +This has the effect of using the NEW behavior with newer CMake releases which +users may be using and not issuing a compatibility warning. + +The setting of a policy is confined in some cases to not propagate to the +parent scope. For example, if the files read by the :command:`include` command +or the :command:`find_package` command contain a use of :command:`cmake_policy`, +that policy setting will not affect the caller by default. Both commands accept +an optional ``NO_POLICY_SCOPE`` keyword to control this behavior. + +The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used +to determine whether to report an error on use of deprecated macros or +functions. + +All Policies +============ + +.. toctree:: + :maxdepth: 1 + + /policy/CMP0000 + /policy/CMP0001 + /policy/CMP0002 + /policy/CMP0003 + /policy/CMP0004 + /policy/CMP0005 + /policy/CMP0006 + /policy/CMP0007 + /policy/CMP0008 + /policy/CMP0009 + /policy/CMP0010 + /policy/CMP0011 + /policy/CMP0012 + /policy/CMP0013 + /policy/CMP0014 + /policy/CMP0015 + /policy/CMP0016 + /policy/CMP0017 + /policy/CMP0018 + /policy/CMP0019 + /policy/CMP0020 + /policy/CMP0021 + /policy/CMP0022 + /policy/CMP0023 + /policy/CMP0024 + /policy/CMP0025 + /policy/CMP0026 + /policy/CMP0027 + /policy/CMP0028 + /policy/CMP0029 + /policy/CMP0030 + /policy/CMP0031 + /policy/CMP0032 + /policy/CMP0033 + /policy/CMP0034 + /policy/CMP0035 + /policy/CMP0036 + /policy/CMP0037 + /policy/CMP0038 + /policy/CMP0039 + /policy/CMP0040 + /policy/CMP0041 + /policy/CMP0042 + /policy/CMP0043 + /policy/CMP0044 + /policy/CMP0045 + /policy/CMP0046 + /policy/CMP0047 |