qtbase/.cmake.conf
Alexandru Croitor d14addfd45 CMake: Increase minimum required CMake version to 3.22
For both building and using Qt.

The Linux distributions that Qt 6.9 aims to support have the following
CMake versions in their official package repositories:

rhel   8.10        ships 3.26.5
rhel   9.4         ships 3.26.5
opensuse 15.6      ships 3.28.3
ubuntu 24.04       ships 3.28.3
debian 11.6        ships 3.24
debian 12          ships 3.25
yocto 4.0 kirstone ships 3.22
suse enterprise is similar to opensuse

Windows and macOS don't ship cmake, developers on those
platforms always have to manually download / install cmake from
somewhere, thus they can use most newer versions.

The lowest common version on Linux is 3.26.
The lowest common version on Linux including yocto 4.0 is 3.22.

Until we clarify whether we need to support the yocto version or not,
the safe assumption is that we need to.

Hence the minimum required version will be 3.22.
We might revisit this later.

The minimum and maximum cmake policy version are left at
the existing 3.16 and 3.21 respectively, because changing those would
require more work than just bumping the minimum.

[ChangeLog][Build Systems] Building and using Qt now requires at least
CMake version 3.22.

Task-number: QTBUG-131169
Change-Id: I319cc61f4099bd8d3fae04e8c270340ab09ff8a8
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2024-12-02 16:01:44 +01:00

69 lines
3.1 KiB
Plaintext

# set (git) module specific defines, but only if we are actually qtbase
# do _not_ set them as the global toplevel configuration
# we check for QT_REPO_MODULE_VERSION before defining it below; that will
# ensure that when this file is included the second time in a toplevel buld
# (directly by qtbase) we actually add the extra definitions
if (NOT DEFINED QT_SUPERBUILD OR DEFINED QT_REPO_MODULE_VERSION)
set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_LEAN_HEADERS=1")
endif()
set(QT_REPO_MODULE_VERSION "6.9.0")
set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
set(QT_COPYRIGHT "Copyright (C) The Qt Company Ltd. and other contributors.")
# Minimum requirement for building Qt
set(QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_BUILDING_QT_SHARED "3.22")
set(QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_BUILDING_QT_STATIC "3.22")
set(QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_BUILDING_QT_APPLE "3.22")
# Minimum requirement for consuming Qt in a user project.
# This might be different in the future, e.g. be lower than the requirement for
# building Qt.
set(QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_USING_QT_SHARED "3.22")
set(QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_USING_QT_STATIC "3.22")
set(QT_SUPPORTED_MIN_CMAKE_VERSION_FOR_USING_QT_APPLE "3.22")
# Policy settings for commands defined by qtbase.
# These will also be injected into the top level policy scope of each Qt
# repo when building Qt so that repos have the same policy settings as
# qtbase by default. They can be overridden by individual Qt repos
# in their own .cmake.conf files if needed.
# This affects both internal and public api commands, because the policies are
# written into the generated QtFooConfig.cmake.in files.
#
# NOTE: Some of these values are also hard-coded in
# QtBuildInternalsConfig.cmake at the top of the file
# 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.
# TODO: Figure out how to handle the platform values there
# given we now set them conditionally
set(QT_MIN_NEW_POLICY_CMAKE_VERSION_QT_SHARED "3.16")
set(QT_MIN_NEW_POLICY_CMAKE_VERSION_QT_STATIC "3.16")
set(QT_MIN_NEW_POLICY_CMAKE_VERSION_QT_APPLE "3.16")
set(QT_MAX_NEW_POLICY_CMAKE_VERSION_QT_SHARED "3.21")
set(QT_MAX_NEW_POLICY_CMAKE_VERSION_QT_STATIC "3.21")
set(QT_MAX_NEW_POLICY_CMAKE_VERSION_QT_APPLE "3.21")
# Apple version constraints. Used when building Qt and documentation
set(QT_SUPPORTED_MIN_MACOS_SDK_VERSION "14")
set(QT_SUPPORTED_MAX_MACOS_SDK_VERSION "15")
set(QT_SUPPORTED_MIN_MACOS_XCODE_VERSION "15")
set(QT_SUPPORTED_MIN_MACOS_VERSION "12")
set(QT_SUPPORTED_MAX_MACOS_VERSION_TESTED "15")
set(QT_SUPPORTED_MIN_IOS_SDK_VERSION "17")
set(QT_SUPPORTED_MAX_IOS_SDK_VERSION "18")
set(QT_SUPPORTED_MIN_IOS_XCODE_VERSION "15")
set(QT_SUPPORTED_MIN_IOS_VERSION "16")
set(QT_SUPPORTED_MAX_IOS_VERSION_TESTED "18")
set(QT_SUPPORTED_MIN_VISIONOS_SDK_VERSION "1")
set(QT_SUPPORTED_MAX_VISIONOS_SDK_VERSION "2")
set(QT_SUPPORTED_MIN_VISIONOS_XCODE_VERSION "15")
set(QT_SUPPORTED_MIN_VISIONOS_VERSION "1")
set(QT_SUPPORTED_MAX_VISIONOS_VERSION_TESTED "2")