diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2021-12-01 23:41:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-02 00:41:48 +0200 |
commit | 3f1519f2e739cb8bab4aba4c5b2e0674ff2a6790 (patch) | |
tree | 9e66269a900bd9e5d10d05a6550dc78d07fdf527 | |
parent | 45c5300496486ff9f1f3d47a01cdf19b8fa7e877 (diff) | |
download | meson-3f1519f2e739cb8bab4aba4c5b2e0674ff2a6790.zip meson-3f1519f2e739cb8bab4aba4c5b2e0674ff2a6790.tar.gz meson-3f1519f2e739cb8bab4aba4c5b2e0674ff2a6790.tar.bz2 |
cmake: Deprecate CMake <3.14 and warn for <3.17 (#9677)
* cmake: Deprecate CMake <3.14 and warn for <3.17
See:
- #7832
- #9676
* cmake: Add deprecation release note snippet
-rw-r--r-- | docs/markdown/snippets/cmake_deprecated.md | 7 | ||||
-rw-r--r-- | mesonbuild/cmake/interpreter.py | 14 |
2 files changed, 21 insertions, 0 deletions
diff --git a/docs/markdown/snippets/cmake_deprecated.md b/docs/markdown/snippets/cmake_deprecated.md new file mode 100644 index 0000000..9e456e7 --- /dev/null +++ b/docs/markdown/snippets/cmake_deprecated.md @@ -0,0 +1,7 @@ +## Support for CMake <3.14 is now deprecated for CMake subprojects + +In CMake 3.14, the File API was introduced and the old CMake server API was +deprecated (and removed in CMake 3.20). Thus support for this API will also +be removed from Meson in future releases. + +This deprecation only affects CMake subprojects. diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py index a8ed67c..c2e2d27 100644 --- a/mesonbuild/cmake/interpreter.py +++ b/mesonbuild/cmake/interpreter.py @@ -33,6 +33,7 @@ from functools import lru_cache from pathlib import Path import typing as T import re +import textwrap from os import environ from ..mparser import ( @@ -832,6 +833,19 @@ class CMakeInterpreter: if version_compare(cmake_exe.version(), '>=3.14'): self.cmake_api = CMakeAPI.FILE self.fileapi.setup_request() + else: + mlog.deprecation(f'Support for CMake <3.14 (Meson found {cmake_exe.version()}) is deprecated since Meson 0.61.0') + + if version_compare(cmake_exe.version(), '<3.17.0'): + mlog.warning(textwrap.dedent(f'''\ + The minimum recommended CMake version is 3.17.0. + | + | However, Meson was only able to find CMake {cmake_exe.version()} at {cmake_exe.cmakebin.command}. + | + | Support for all CMake versions below 3.17.0 will be deprecated and + | removed once newer CMake versions are more widely adopted. If you encounter + | any errors please try upgrading CMake to a newer version first. + ''')) # Run CMake mlog.log() |