cmake_minimum_required.rst 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. cmake_minimum_required
  2. ----------------------
  3. Set the minimum required version of cmake for a project and
  4. update `Policy Settings`_ to match the version given::
  5. cmake_minimum_required(VERSION <min>[...<max>] [FATAL_ERROR])
  6. ``<min>`` and the optional ``<max>`` are each CMake versions of the form
  7. ``major.minor[.patch[.tweak]]``, and the ``...`` is literal.
  8. If the running version of CMake is lower than the ``<min>`` required
  9. version it will stop processing the project and report an error.
  10. The optional ``<max>`` version, if specified, must be at least the
  11. ``<min>`` version and affects policy settings as described below.
  12. The ``FATAL_ERROR`` option is accepted but ignored by CMake 2.6 and
  13. higher. It should be specified so CMake versions 2.4 and lower fail
  14. with an error instead of just a warning.
  15. .. note::
  16. Call the ``cmake_minimum_required()`` command at the beginning of
  17. the top-level ``CMakeLists.txt`` file even before calling the
  18. :command:`project` command. It is important to establish version
  19. and policy settings before invoking other commands whose behavior
  20. they may affect. See also policy :policy:`CMP0000`.
  21. Calling ``cmake_minimum_required()`` inside a :command:`function`
  22. limits some effects to the function scope when invoked. Such calls
  23. should not be made with the intention of having global effects.
  24. Policy Settings
  25. ^^^^^^^^^^^^^^^
  26. The ``cmake_minimum_required(VERSION)`` command implicitly invokes the
  27. :command:`cmake_policy(VERSION)` command to specify that the current
  28. project code is written for the given range of CMake versions.
  29. All policies known to the running version of CMake and introduced
  30. in the ``<min>`` (or ``<max>``, if specified) version or earlier will
  31. be set to use ``NEW`` behavior. All policies introduced in later
  32. versions will be unset. This effectively requests behavior preferred
  33. as of a given CMake version and tells newer CMake versions to warn
  34. about their new policies.
  35. When a ``<min>`` version higher than 2.4 is specified the command
  36. implicitly invokes::
  37. cmake_policy(VERSION <min>[...<max>])
  38. which sets CMake policies based on the range of versions specified.
  39. When a ``<min>`` version 2.4 or lower is given the command implicitly
  40. invokes::
  41. cmake_policy(VERSION 2.4[...<max>])
  42. which enables compatibility features for CMake 2.4 and lower.