From: Andreas Sturmlechner Date: Sun, 9 Feb 2020 11:45:00 +0100 Subject: [PATCH] qtcore: Fix cmake macro compat. for upgrade from =Qt-5.14, as a consequence of slot upgrade rebuilds, some reverse dependencies are slated for rebuild before these Qt consumers have been rebuilt and their cmake files regenerated, leading to cmake errors like: https://bugs.gentoo.org/703306 https://bugs.gentoo.org/705198 From mkspecs/features/create_cmake.prf: # CMAKE_DEBUG_AND_RELEASE is used to tell the _populate_$${CMAKE_MODULE_NAME}_target_properties # functions whether a Configuration specific generator expression needs to be added to the values # of INTERFACE_LINK_LIBRARIES and INTERFACE_LINK_OPTIONS. For debug_and_release builds, we do need # configuration specific values. For singular builds (only release or only debug), we want the # values to be applied regardless of the configuration. # This would allow on Linux and macOS (and with a recent enough version of CMake on Windows) to # build a Debug configuration of an application, even if Qt was built in a Release configuration. qt5-build.eclass is configuring either as 'release' or as 'debug', so we make IsDebugAndRelease optional and default to FALSE. --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2020-01-23 13:37:32.000000000 +0100 +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2020-02-09 15:15:21.156219814 +0100 @@ -538,8 +538,14 @@ file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") - macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION - IsDebugAndRelease) + macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) + set(IsDebugAndRelease FALSE) + set (list_var ${ARGN}) + list(LENGTH list_var num_extra_arg) + if (${num_extra_arg} GREATER 0) + list(GET list_var 0 IsDebugAndRelease) + endif() + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) !!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE)