Lower the CMake minimum required version for single-config builds

Ubuntu 20.04 is a supported platform and comes with CMake 3.16. The
current state of the Qt build works fine with this CMake version, mainly
because the default build on Linux is single-config.

For multi-config builds we have higher version requirements as
documented in cmake/README.md.

This lowers the barrier for users using single-config builds who don't
want or cannot upgrade to CMake >= 3.18.

For Ninja Multi-Config builds, which were introduced by CMake 3.17, we
yield a warning that 3.18.3 is the lowest supported version.

Pick-to: 6.0
Change-Id: Ia918b9f2b494508e86301ffc0e138d3ad4dbaf86
Reviewed-by: Craig Scott <craig.scott@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Joerg Bornemann 2021-01-08 14:31:26 +01:00
parent a2db96e253
commit 20a1791157
2 changed files with 11 additions and 1 deletions

View File

@ -1,7 +1,7 @@
set(QT_REPO_MODULE_VERSION "6.1.0")
# Minimum requirement for building Qt
set(QT_MIN_SUPPORTED_CMAKE_VERSION "3.18")
set(QT_MIN_SUPPORTED_CMAKE_VERSION "3.16")
# Policy settings for commands defined by qtbase. These will also be injected
# into the top level policy scope of each Qt module when building Qt so that

View File

@ -124,6 +124,16 @@ function(qt_internal_warn_about_unsuitable_cmake_versions)
"CMake version used: '${unsuitable_version}'")
endif()
endforeach()
# Ninja Multi-Config was introduced in 3.17, but we recommend 3.18.
set(min_nmc_cmake_version "3.18.3")
if(CMAKE_GENERATOR STREQUAL "Ninja Multi-Config"
AND CMAKE_VERSION VERSION_LESS ${min_nmc_cmake_version})
message(WARNING
"You are using CMake ${CMAKE_VERSION} with the Ninja Multi-Config generator. "
"This combination is unsupported. "
"Please upgrade to at least CMake ${min_nmc_cmake_version}. ")
endif()
endfunction()
# Functions don't have their own policy scope, so the policy settings modified