From 42970e490af00cd9baff1c54f4f00d982b21586a Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Tue, 6 Jul 2021 17:55:30 +0200 Subject: 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 Reviewed-by: Alexandru Croitor Reviewed-by: Craig Scott Reviewed-by: Qt CI Bot --- .cmake.conf | 4 ++-- CMakeLists.txt | 3 +++ cmake/QtBuildInternals/QtBuildInternalsConfig.cmake | 2 +- 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) ############################################### # -- cgit v1.2.3