diff options
Diffstat (limited to 'tests/auto/cmake/test_versionless_targets/CMakeLists.txt')
-rw-r--r-- | tests/auto/cmake/test_versionless_targets/CMakeLists.txt | 103 |
1 files changed, 90 insertions, 13 deletions
diff --git a/tests/auto/cmake/test_versionless_targets/CMakeLists.txt b/tests/auto/cmake/test_versionless_targets/CMakeLists.txt index 3514f4e0f9..1afcaa6a93 100644 --- a/tests/auto/cmake/test_versionless_targets/CMakeLists.txt +++ b/tests/auto/cmake/test_versionless_targets/CMakeLists.txt @@ -5,22 +5,99 @@ cmake_minimum_required(VERSION 3.16) project(versionless_targets) -set(QT_NO_CREATE_VERSIONLESS_TARGETS ON) +function(check_versionless_targets) + set(known_interface_properties + QT_MAJOR_VERSION + AUTOMOC_MACRO_NAMES + AUTOUIC_OPTIONS + COMPILE_DEFINITIONS + COMPILE_FEATURES + COMPILE_OPTIONS + CXX_MODULE_SETS + HEADER_SETS + HEADER_SETS_TO_VERIFY + INCLUDE_DIRECTORIES + LINK_DEPENDS + LINK_DIRECTORIES + LINK_LIBRARIES + LINK_LIBRARIES_DIRECT + LINK_LIBRARIES_DIRECT_EXCLUDE + LINK_OPTIONS + POSITION_INDEPENDENT_CODE + PRECOMPILE_HEADERS + SOURCES + SYSTEM_INCLUDE_DIRECTORIES + ) -find_package(Qt6Core REQUIRED) + set(known_qt_exported_properties + MODULE_PLUGIN_TYPES + QT_DISABLED_PRIVATE_FEATURES + QT_DISABLED_PUBLIC_FEATURES + QT_ENABLED_PRIVATE_FEATURES + QT_ENABLED_PUBLIC_FEATURES + QT_QMAKE_PRIVATE_CONFIG + QT_QMAKE_PUBLIC_CONFIG + QT_QMAKE_PUBLIC_QT_CONFIG + _qt_config_module_name + _qt_is_public_module + _qt_module_has_headers + _qt_module_has_private_headers + _qt_module_has_public_headers + _qt_module_has_qpa_headers + _qt_module_has_rhi_headers + _qt_module_include_name + _qt_module_interface_name + _qt_package_name + _qt_package_version + _qt_private_module_target_name + ) -if (NOT TARGET Qt6::Core) - message(SEND_ERROR "Qt6::Core target not defined!") -endif() + foreach(prop ${known_interface_properties}) + set(versionless_prop "") + set(versioned_prop "") + get_target_property(versionless_prop Qt::Core INTERFACE_${prop}) + get_target_property(versioned_prop Qt6::Core INTERFACE_${prop}) + if(NOT versionless_prop AND NOT versioned_prop) + continue() + endif() -if (TARGET Qt::Core) - message(SEND_ERROR "Qt::Core target defined despite QT_NO_CREATE_VERSIONLESS_TARGETS!") -endif() + if(NOT "${versionless_prop}" STREQUAL "${versioned_prop}") + message(SEND_ERROR "INTERFACE_${prop} doesn't match versionless ${versionless_prop}" + " versioned ${versioned_prop}") + endif() + endforeach() -set(QT_NO_CREATE_VERSIONLESS_TARGETS OFF) + foreach(prop ${known_qt_exported_properties}) + set(versionless_prop "") + set(versioned_prop "") + get_target_property(versionless_prop Qt::Core ${prop}) + get_target_property(versioned_prop Qt6::Core ${prop}) + if(NOT versionless_prop AND NOT versioned_prop) + continue() + endif() -find_package(Qt6Core REQUIRED) + if(NOT "${versionless_prop}" STREQUAL "${versioned_prop}") + message(SEND_ERROR "${prop} doesn't match versionless ${versionless_prop}" + " versioned ${versioned_prop}") + endif() + endforeach() -if (NOT TARGET Qt::Core) - message(SEND_ERROR "Qt::Core target not defined!") -endif() + foreach(conf "" _RELEASE _DEBUG _RELWITHDEBINFO _MINSIZEREL) + set(versionless_prop "") + set(versioned_prop "") + get_target_property(versionless_prop Qt::Core IMPORTED_LOCATION${conf}) + get_target_property(versioned_prop Qt6::Core IMPORTED_LOCATION${conf}) + if(NOT versionless_prop AND NOT versioned_prop) + continue() + endif() + if(NOT "${versionless_prop}" STREQUAL "${versioned_prop}") + message(SEND_ERROR "IMPORTED_LOCATION${conf} doesn't match versionless ${versionless_prop}" + " versioned ${versioned_prop}") + endif() + endforeach() +endfunction() + +add_subdirectory(default) +add_subdirectory(force_off) +add_subdirectory(force_on) +add_subdirectory(force_old) |