diff options
Diffstat (limited to '0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch')
-rw-r--r-- | 0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch | 123 |
1 files changed, 67 insertions, 56 deletions
diff --git a/0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch b/0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch index 10946b0f5393..2255c51fb12d 100644 --- a/0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch +++ b/0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch @@ -1,4 +1,4 @@ -From 720bde854fa9d143d0ad8db4794a0dd0efb173a2 Mon Sep 17 00:00:00 2001 +From 890e47124906afd97de44bc40520338bde5dc5d3 Mon Sep 17 00:00:00 2001 From: Martchus <martchus@gmx.net> Date: Sun, 18 Sep 2016 18:32:00 +0200 Subject: [PATCH 20/33] Pull dependencies of static libraries in CMake modules @@ -21,12 +21,12 @@ e.g. to use QMAKE_PRL_LIBS instead of QMAKE_PRL_LIBS_FOR_CMAKE. See https://github.com/Martchus/PKGBUILDs/issues/86#issuecomment-476840055 for further details on 2. --- - .../data/cmake/Qt5BasicConfig.cmake.in | 172 ++++++++++++++---- + .../data/cmake/Qt5BasicConfig.cmake.in | 192 ++++++++++++------ .../data/cmake/Qt5PluginTarget.cmake.in | 11 +- - 2 files changed, 139 insertions(+), 44 deletions(-) + 2 files changed, 136 insertions(+), 67 deletions(-) diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -index 705e0a3c93..c0097cac74 100644 +index d4fd057682..838279515c 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -53,10 +53,18 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura @@ -40,24 +40,24 @@ index 705e0a3c93..c0097cac74 100644 get_filename_component(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" ABSOLUTE) if(EXISTS \"${prl_file_location}\") - file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS[ \\t]*=\") + file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE[ \\t]*=\") + if(NOT _prl_strings) -+ message(WARNING \"Prl file for Qt 5 module $${CMAKE_MODULE_NAME} does not contain QMAKE_PRL_LIBS. Was looking at \\\"${prl_file_location}\\\".\") ++ message(WARNING \"Prl file for Qt 5 module $${CMAKE_MODULE_NAME} does not contain QMAKE_PRL_LIBS_FOR_CMAKE. Was looking at \\\"${prl_file_location}\\\".\") + return() + endif() - string(REGEX REPLACE \"QMAKE_PRL_LIBS[ \\t]*=[ \\t]*([^\\n]*)\" \"\\\\1\" _static_depends ${_prl_strings}) - string(REGEX REPLACE \"[ \\t]+\" \";\" _static_depends ${_static_depends}) - string(REGEX REPLACE \"[ \\t]+\" \";\" _standard_libraries \"${CMAKE_CXX_STANDARD_LIBRARIES}\") -@@ -68,7 +76,7 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura + + # file(STRINGS) replaces all semicolons read from the file with backslash semicolons. + # We need to do a reverse transformation in CMake. For that we replace all backslash +@@ -75,7 +83,7 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura # Handle normal libraries passed as -lfoo set(_lib \"${CMAKE_MATCH_1}\") foreach(_standard_library ${_standard_libraries}) -- if(_standard_library MATCHES \"^${_lib}(\\.lib)?$\") +- if(_standard_library MATCHES \"^${_lib}(\\\\.lib)?$\") + if(_standard_library MATCHES \"^${_lib}(\\\\.lib|\\\\.a)?$\") set(_lib_is_default_linked TRUE) break() endif() -@@ -109,11 +117,42 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura +@@ -116,6 +124,37 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura set(${lib_deps} ${_lib_deps} PARENT_SCOPE) set(${link_flags} \"SHELL:${_link_flags}\" PARENT_SCOPE) endfunction() @@ -95,71 +95,78 @@ index 705e0a3c93..c0097cac74 100644 !!ENDIF !!IF !equals(TEMPLATE, aux) --macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION) -- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) -+macro(_populate_$${CMAKE_MODULE_NAME}_target_properties TARGET_CONFIG LIB_LOCATION IMPLIB_LOCATION) -+ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${TARGET_CONFIG}) - - !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\") -@@ -121,44 +160,62 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI +@@ -129,52 +168,39 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") !!ENDIF _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) + set(_deps ${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES} +- ) +- set(_static_deps !!IF !isEmpty(CMAKE_STATIC_TYPE) -- ${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES} -+ ${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${TARGET_CONFIG}_LIB_DEPENDENCIES} + ${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES} !!ENDIF ) + ++ # FIXME: handle IsDebugAndRelease like in official version + +!!IF !isEmpty(CMAKE_STATIC_TYPE) set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES -- \"INTERFACE_LINK_LIBRARIES\" \"${_deps}\" -- \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} -+ \"IMPORTED_LOCATION_${TARGET_CONFIG}\" ${imported_location} + \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} !!IF !isEmpty(CMAKE_LIB_SONAME) -- \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" -+ \"IMPORTED_SONAME_${TARGET_CONFIG}\" \"$${CMAKE_LIB_SONAME}\" + \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" !!ENDIF - # For backward compatibility with CMake < 2.8.12 -- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_deps}\" +- \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_deps};${_static_deps}\" +- ) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES +- \"${_deps}\" ) +- -!!IF !isEmpty(CMAKE_STATIC_TYPE) +- if(NOT "${IsDebugAndRelease}") +- set(_genex_condition \"1\") +- else() +- if("${Configuration}" STREQUAL "DEBUG") +- set(_genex_condition \"$<CONFIG:Debug>\") +- else() +- set(_genex_condition \"$<NOT:$<CONFIG:Debug>>\") +- endif() +- endif() - -+ _qt5_add_dependencies(Qt5::$${CMAKE_MODULE_NAME} \"${TARGET_CONFIG}\" \"${_deps}\") - if(NOT CMAKE_VERSION VERSION_LESS \"3.13\") - set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES - \"INTERFACE_LINK_OPTIONS\" \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LINK_FLAGS}\" +- if(_static_deps) +- set(_static_deps_genex \"$<${_genex_condition}:${_static_deps}>\") +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES +- \"${_static_deps_genex}\" +- ) +- endif() +- +- set(_static_link_flags \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LINK_FLAGS}\") +- if(NOT CMAKE_VERSION VERSION_LESS \"3.13\" AND _static_link_flags) +- set(_static_link_flags_genex \"$<${_genex_condition}:${_static_link_flags}>\") +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_OPTIONS +- \"${_static_link_flags_genex}\" ++ _qt5_add_dependencies(Qt5::$${CMAKE_MODULE_NAME} \"${Configuration}\" \"${_deps}\") ++ if(NOT CMAKE_VERSION VERSION_LESS \"3.13\") ++ set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES ++ \"INTERFACE_LINK_OPTIONS\" \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LINK_FLAGS}\" ) endif() +!!ELSE + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES -+ \"INTERFACE_LINK_LIBRARIES_${TARGET_CONFIG}\" \"${_deps}\" -+ \"IMPORTED_LOCATION_${TARGET_CONFIG}\" ${imported_location} ++ \"INTERFACE_LINK_LIBRARIES_${Configuration}\" \"${_deps}\" ++ \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} +!!IF !isEmpty(CMAKE_LIB_SONAME) -+ \"IMPORTED_SONAME_${TARGET_CONFIG}\" \"$${CMAKE_LIB_SONAME}\" ++ \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" +!!ENDIF + # For backward compatibility with CMake < 2.8.12 -+ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${TARGET_CONFIG}\" \"${_deps}\" ++ \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_deps}\" + ) !!ENDIF !!IF !isEmpty(CMAKE_WINDOWS_BUILD) - !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") - !!ELSE -- set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") -+ set(imported_implib \"IMPORTED_IMPLIB_${TARGET_CONFIG}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") - !!ENDIF - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib}) - if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\") - set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES -- \"IMPORTED_IMPLIB_${Configuration}\" ${imported_implib} -+ \"IMPORTED_IMPLIB_${TARGET_CONFIG}\" ${imported_implib} - ) +@@ -191,6 +217,15 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI endif() !!ENDIF endmacro() @@ -175,7 +182,7 @@ index 705e0a3c93..c0097cac74 100644 !!ENDIF if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) -@@ -328,13 +385,15 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) +@@ -360,13 +395,15 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") @@ -193,7 +200,7 @@ index 705e0a3c93..c0097cac74 100644 !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -@@ -349,6 +408,56 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) +@@ -381,6 +418,56 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_ENABLED_FEATURES $$join(QT.$${MODULE}.enabled_features, ";")) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_DISABLED_FEATURES $$join(QT.$${MODULE}.disabled_features, ";")) @@ -250,7 +257,7 @@ index 705e0a3c93..c0097cac74 100644 set(_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIRS_EXIST TRUE) foreach (_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR ${Qt5$${CMAKE_MODULE_NAME}_OWN_PRIVATE_INCLUDE_DIRS}) if (NOT EXISTS ${_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR}) -@@ -367,9 +476,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) +@@ -399,9 +486,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) list(APPEND _Qt5$${CMAKE_MODULE_NAME}_PRIVATEDEPS ${dep}Private) endif() endforeach() @@ -264,13 +271,13 @@ index 705e0a3c93..c0097cac74 100644 endif() !!IF !equals(TEMPLATE, aux) -@@ -439,9 +552,11 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) +@@ -471,9 +562,11 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) !!ELSE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) !!ENDIF -- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) +- _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD -+ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) ++ _populate_$${CMAKE_MODULE_NAME}_target_properties(Qt5::$${CMAKE_MODULE_NAME} RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) endif() +!!ENDIF // CMAKE_STATIC_TYPE + @@ -278,10 +285,12 @@ index 705e0a3c93..c0097cac74 100644 !!ENDIF // CMAKE_RELEASE_TYPE !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD -@@ -452,29 +567,6 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) +@@ -484,33 +577,6 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) ) !!ENDIF // TEMPLATE != aux +-!!IF isEmpty(CMAKE_INTERNAL_MODULE) +- - file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") - - macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) @@ -304,6 +313,8 @@ index 705e0a3c93..c0097cac74 100644 - endforeach() - endif() - +-!!ENDIF // isEmpty(CMAKE_INTERNAL_MODULE) +- - !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") @@ -332,5 +343,5 @@ index 5baf0fdb10..ec5f3cc437 100644 + +endif() -- -2.22.0 +2.23.0 |