File exclude-qtuitools-symbols-from-public-libraries.patch of Package mingw64-kdelibs4
From 87dd1e894da87b871eb86329c35a15e7d235c9a7 Mon Sep 17 00:00:00 2001
From: Hrvoje Senjan <hrvoje.senjan@gmail.com>
Date: Sun, 12 May 2013 16:14:20 +0200
Subject: [PATCH 1/1] Exclude QtUiTools symbols from public libraries
Otherwise it makes users of those libs crash
when linked with -Bsymbolic-functions
---
kjsembed/kjsembed/CMakeLists.txt | 3 ++-
kross/modules/CMakeLists.txt | 3 +++
kross/qts/CMakeLists.txt | 3 +++
plasma/CMakeLists.txt | 3 +++
4 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/kjsembed/kjsembed/CMakeLists.txt b/kjsembed/kjsembed/CMakeLists.txt
index d70f260..5760313 100644
--- a/kjsembed/kjsembed/CMakeLists.txt
+++ b/kjsembed/kjsembed/CMakeLists.txt
@@ -71,7 +71,8 @@ target_link_libraries(${KJSEMBEDLIBNAME} ${KDE4_KDECORE_LIBS} ${QT_QTUITOOLS_LIB
set_target_properties(${KJSEMBEDLIBNAME} PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
install(TARGETS ${KJSEMBEDLIBNAME} EXPORT kdelibsLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
-
+# Do not export QtUiTools internal symbols
+set_target_properties(${KJSEMBEDLIBNAME} PROPERTIES LINK_FLAGS "-Wl,--exclude-libs -Wl,libQtUiTools.a")
diff --git a/kross/modules/CMakeLists.txt b/kross/modules/CMakeLists.txt
index d245fd8..e21fb4c 100644
--- a/kross/modules/CMakeLists.txt
+++ b/kross/modules/CMakeLists.txt
@@ -15,6 +15,9 @@ if( QT_QTDESIGNER_FOUND )
target_link_libraries(krossmoduleforms ${QT_QTUITOOLS_LIBRARY} ${KDE4_KPARTS_LIBS} ${KDE4_KFILE_LIBS} krosscore krossui)
install(TARGETS krossmoduleforms DESTINATION ${PLUGIN_INSTALL_DIR})
+
+ # Do not export QtUiTools internal symbols
+ set_target_properties(krossmoduleforms PROPERTIES LINK_FLAGS "-Wl,--exclude-libs -Wl,libQtUiTools.a")
endif( QT_QTDESIGNER_FOUND )
############################################
diff --git a/plasma/CMakeLists.txt b/plasma/CMakeLists.txt
index 674550d..03c983d 100644
--- a/plasma/CMakeLists.txt
+++ b/plasma/CMakeLists.txt
@@ -282,6 +282,9 @@ target_link_libraries(plasma ${QT_QTUITOOLS_LIBRARY} ${QT_QTWEBKIT_LIBRARY}
${QT_QTSCRIPT_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTSQL_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY}
${KDE4_KDEUI_LIBS} ${KDE4_KDNSSD_LIBS} ${KDE4_THREADWEAVER_LIBS} ${PLASMA_EXTRA_LIBS})
+# Do not export QtUiTools internal symbols
+set_target_properties(plasma PROPERTIES LINK_FLAGS "-Wl,--exclude-libs -Wl,libQtUiTools.a")
+
if(QCA2_FOUND)
target_link_libraries(plasma ${QCA2_LIBRARIES})
endif(QCA2_FOUND)
diff --git a/kross/qts/CMakeLists.txt b/kross/qts/CMakeLists.txt
index d8cb4a5..a4aff36 100644
--- a/kross/qts/CMakeLists.txt
+++ b/kross/qts/CMakeLists.txt
@@ -30,3 +30,6 @@ kde4_add_plugin(krossqts ${krossqts_PART_SRCS})
target_link_libraries(krossqts ${KDE4_KDEUI_LIBS} ${KDE4_KDECORE_LIBS} krosscore ${QT_QTSCRIPT_LIBRARY})
install(TARGETS krossqts DESTINATION ${PLUGIN_INSTALL_DIR})
+
+# Do not export QtUiTools internal symbols
+set_target_properties(krossqts PROPERTIES LINK_FLAGS "-Wl,--exclude-libs -Wl,libQtUiTools.a")
\ No newline at end of file
--
1.8.2.2