summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2021-07-06 17:55:30 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2021-07-28 20:54:14 +0200
commit42970e490af00cd9baff1c54f4f00d982b21586a (patch)
tree21b04ecee377c757714542e6f2eeefc550bd476f
parent0a8aa8c23e84ef5918dda15a9af9d582d5bfd9a1 (diff)
CMake: Bump min required CMake version for shared Qt builds to 3.16
Building a shared library Qt configuration already required a minimum CMake version of 3.16, because we depend on CMake's Autogen.json files which are used for metatype.json file generation. If a lower version was used, a FATAL_ERROR was issued in qt6_extract_metatypes. This change is essentially moving the check to happen earlier in the qtbase configure process. User projects will now /also/ officially require a minimum of 3.16 (up from 3.14). As a consequence, the min/max version policy range that is set in the public QtFooConfig.cmake files is changed from 3.14..3.19 to 3.16..3.20 The upper bound is raised because building and using Qt works fine with all CMake 3.20 policies set to NEW. [ChangeLog][CMake] Building Qt as shared libraries now requires CMake version 3.16 or later. Building user projects with CMake using that Qt installation also requires a CMake version of 3.16 or later. Pick-to: 6.2 Task-number: QTBUG-95018 Change-Id: I77d2829370f1dfc90b4071bebc8a3ade654e59e6 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Craig Scott <craig.scott@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--.cmake.conf4
-rw-r--r--CMakeLists.txt3
-rw-r--r--cmake/QtBuildInternals/QtBuildInternalsConfig.cmake2
3 files changed, 6 insertions, 3 deletions
diff --git a/.cmake.conf b/.cmake.conf
index a63f70d6b9..848faeb55d 100644
--- a/.cmake.conf
+++ b/.cmake.conf
@@ -13,5 +13,5 @@ set(QT_MIN_SUPPORTED_CMAKE_VERSION "3.16")
# because that file is used in-place by a superbuild, so there is no
# opportunity for substituting the values from here. Keep both locations
# in sync.
-set(QT_MIN_NEW_POLICY_CMAKE_VERSION "3.14")
-set(QT_MAX_NEW_POLICY_CMAKE_VERSION "3.19")
+set(QT_MIN_NEW_POLICY_CMAKE_VERSION "3.16")
+set(QT_MAX_NEW_POLICY_CMAKE_VERSION "3.20")
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 334c2496c7..35ee14102e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,6 +3,9 @@
# Need an explicit call at the top level. This is the absolute minimum version
# needed to configure the project with any combination of enabled features.
# The call to qt_build_repo_begin() will upgrade policies further.
+#
+# The absolute minimum version for building Qt is 3.16 because for metatype.json generation, we
+# depend on being able to find the location of json files created by AUTOMOC/moc.
cmake_minimum_required(VERSION 3.16)
# Get the repo version and CMake policy details
diff --git a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
index f100e4ab44..7ebe0a5744 100644
--- a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
+++ b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake
@@ -1,5 +1,5 @@
# These values should be kept in sync with those in qtbase/.cmake.conf
-cmake_minimum_required(VERSION 3.14...3.19)
+cmake_minimum_required(VERSION 3.16...3.20)
###############################################
#