diff options
-rw-r--r-- | mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 16 | ||||
-rw-r--r-- | tests/auto/cmake/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/auto/cmake/test_versionless_targets/CMakeLists.txt | 23 |
3 files changed, 32 insertions, 8 deletions
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 309798a767..db18dbece6 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -419,14 +419,6 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) !!ENDIF !!ENDIF - # Add a versionless target, for compatibility with Qt6. - if(NOT \"${QT_NO_CREATE_VERSIONLESS_TARGETS}\" AND NOT TARGET Qt::$${CMAKE_MODULE_NAME}) - add_library(Qt::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) - set_target_properties(Qt::$${CMAKE_MODULE_NAME} PROPERTIES - INTERFACE_LINK_LIBRARIES \"Qt5::$${CMAKE_MODULE_NAME}\" - ) - endif() - !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) @@ -648,3 +640,11 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake\") endif() + +# Add a versionless target, for compatibility with Qt6. +if(NOT \"${QT_NO_CREATE_VERSIONLESS_TARGETS}\" AND TARGET Qt5::$${CMAKE_MODULE_NAME} AND NOT TARGET Qt::$${CMAKE_MODULE_NAME}) + add_library(Qt::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) + set_target_properties(Qt::$${CMAKE_MODULE_NAME} PROPERTIES + INTERFACE_LINK_LIBRARIES \"Qt5::$${CMAKE_MODULE_NAME}\" + ) +endif() diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt index ed900f7805..2391945fd4 100644 --- a/tests/auto/cmake/CMakeLists.txt +++ b/tests/auto/cmake/CMakeLists.txt @@ -162,3 +162,4 @@ if (NOT CMAKE_VERSION VERSION_LESS 3.8) endif() expect_pass(test_import_plugins BINARY ${CMAKE_CTEST_COMMAND}) +expect_pass(test_versionless_targets) diff --git a/tests/auto/cmake/test_versionless_targets/CMakeLists.txt b/tests/auto/cmake/test_versionless_targets/CMakeLists.txt new file mode 100644 index 0000000000..d2edafbd3e --- /dev/null +++ b/tests/auto/cmake/test_versionless_targets/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.1) + +project(versionless_targets) + +set(QT_NO_CREATE_VERSIONLESS_TARGETS ON) + +find_package(Qt5Core REQUIRED) + +if (NOT TARGET Qt5::Core) + message(SEND_ERROR "Qt5::Core target not defined!") +endif() + +if (TARGET Qt::Core) + message(SEND_ERROR "Qt::Core target defined despite QT_NO_CREATE_VERSIONLESS_TARGETS!") +endif() + +set(QT_NO_CREATE_VERSIONLESS_TARGETS OFF) + +find_package(Qt5Core REQUIRED) + +if (NOT TARGET Qt::Core) + message(SEND_ERROR "Qt::Core target not defined!") +endif() |