CMake: Add switch for allowing missing Qt6*Tools packages
Consider a cross build of Qt with qtbase, qtshadertools and qtdeclarative. If a user projects only links against QtQml without creating an actual QtQuick module, no host tools from qtdeclarative are needed. Normally, find_package(Qt6Qml) pulls in Qt6QmlTools and errors out if it's not found. By setting QT_ALLOW_MISSING_TOOLS_PACKAGES when configuring Qt, one can disable the error and build a user project such as the one outlined above. Pick-to: 6.4 6.5 Fixes: QTBUG-109547 Change-Id: I45e727713912d19e6007a7fbf3d61533f82b71d9 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
This commit is contained in:
parent
9031574440
commit
94e474b48e
@ -667,6 +667,11 @@ set(QT_VISIBILITY_AVAILABLE TRUE)")
|
||||
set(QT_LIBINFIX \"${QT_LIBINFIX}\")")
|
||||
endif()
|
||||
|
||||
# Store whether find_package(Qt6Foo) should succeed if Qt6FooTools is missing.
|
||||
if(QT_ALLOW_MISSING_TOOLS_PACKAGES)
|
||||
string(APPEND qtcore_extra_cmake_code "
|
||||
set(QT_ALLOW_MISSING_TOOLS_PACKAGES TRUE)")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}${target}ConfigExtras.cmake.in"
|
||||
|
@ -70,7 +70,7 @@ macro(_qt_internal_find_tool_dependencies target target_dep_list)
|
||||
"${_qt_cmake_dir}"
|
||||
${_qt_additional_packages_prefix_paths}
|
||||
)
|
||||
if (NOT ${__qt_${target}_pkg}_FOUND)
|
||||
if (NOT ${__qt_${target}_pkg}_FOUND AND NOT QT_ALLOW_MISSING_TOOLS_PACKAGES)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
||||
"${CMAKE_FIND_PACKAGE_NAME} could not be found because dependency \
|
||||
|
Loading…
Reference in New Issue
Block a user