QmlDesigner: WITH_QMLDESIGNER_DEFAULT OFF if compiler is too old

Change-Id: I6b54434273da92bdff9b81076e0cbf47e07cd3d3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tim Jenssen
2024-06-19 13:44:54 +02:00
parent 7caf81117d
commit 3a13e0a561
2 changed files with 32 additions and 7 deletions

View File

@@ -11,7 +11,6 @@ include(Utils)
env_with_default("QTC_BUILD_WITH_PCH" ENV_QTC_BUILD_WITH_PCH ON)
env_with_default("QTC_WITH_TESTS" ENV_QTC_WITH_TESTS OFF)
env_with_default("QTC_WITH_QMLDESIGNER" ENV_QTC_WITH_QMLDESIGNER ON)
option(BUILD_WITH_PCH "Build with precompiled headers" "${ENV_QTC_BUILD_WITH_PCH}")
@@ -78,12 +77,9 @@ find_package(Qt6
REQUIRED
)
if (Qt6_VERSION VERSION_GREATER_EQUAL 6.5.4)
option(WITH_QMLDESIGNER "Build QmlDesigner" ${ENV_QTC_WITH_QMLDESIGNER})
else()
option(WITH_QMLDESIGNER "Build QmlDesigner" OFF)
endif()
add_feature_info("Build QmlDesigner and related code (only if Qt is 6.5.4 or newer)" ${WITH_QMLDESIGNER} "")
# depending on Qt version and compiler version enable or disable Qml Designer
# can be overwritten by variable WITH_QMLDESIGNER / QTC_WITH_QMLDESIGNER (env)
configure_qml_designer(${Qt6_VERSION})
# hack for Qbs which still supports Qt5 and Qt6
if (TARGET Qt6::Core5CompatPrivate)

View File

@@ -59,3 +59,32 @@ function(setup_dependencies_component)
)
endif()
endfunction()
function(configure_qml_designer Qt6_VERSION)
set(QMLDESIGNER_QT6_REQUIRED_VERSION 6.5.4)
set(QMLDESIGNER_GCC_REQUIRED_VERSION 11.0)
set(QMLDESIGNER_CLANG_REQUIRED_VERSION 13.0)
string(CONCAT QMLDESIGNER_FEATURE_DESC
"Needs a Qt ${QMLDESIGNER_QT6_REQUIRED_VERSION} or newer")
if (Qt6_VERSION VERSION_GREATER_EQUAL ${QMLDESIGNER_QT6_REQUIRED_VERSION})
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND
CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${QMLDESIGNER_GCC_REQUIRED_VERSION})
set(QTC_WITH_QMLDESIGNER_DEFAULT OFF)
string(APPEND QMLDESIGNER_FEATURE_DESC " and at least gcc ${QMLDESIGNER_GCC_REQUIRED_VERSION}")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${QMLDESIGNER_CLANG_REQUIRED_VERSION})
set(QTC_WITH_QMLDESIGNER_DEFAULT OFF)
string(APPEND QMLDESIGNER_FEATURE_DESC " and at least clang ${QMLDESIGNER_CLANG_REQUIRED_VERSION}")
else()
set(QTC_WITH_QMLDESIGNER_DEFAULT ON)
endif()
else()
set(QTC_WITH_QMLDESIGNER_DEFAULT OFF)
endif()
env_with_default("QTC_WITH_QMLDESIGNER" ENV_QTC_WITH_QMLDESIGNER ${QTC_WITH_QMLDESIGNER_DEFAULT})
option(WITH_QMLDESIGNER "Build QmlDesigner" ${ENV_QTC_WITH_QMLDESIGNER})
add_feature_info("WITH_QMLDESIGNER" ${WITH_QMLDESIGNER} "${QMLDESIGNER_FEATURE_DESC}")
endfunction()