kdesdk cmake-bustage, kde4_add_plugin

Alexander Neundorf neundorf at kde.org
Mon Jun 11 19:16:34 UTC 2012


On Sunday 10 June 2012, Friedrich W. H. Kossebau wrote:
> Am Sonntag, 10. Juni 2012, 20:10:35 schrieb Friedrich W. H. Kossebau:
> > Hi Rex,
> > 
> > Am Sonntag, 10. Juni 2012, 13:00:37 schrieb Rex Dieter:
> > > On 06/10/2012 12:41 PM, Rex Dieter wrote:
> > > > Seems some odd cmake borkage is going on trying to build
> > > > kdesdk-4.8.90 (4.8.80 suffered the same, but I hadn't noticed then),
> > > > in that any modules using kde4_add_plugin seem to not get compiled
> > > > with -fPIC properly, and fail linking, for example,
> > > > 
> > > > dolphin-plugins:
> > > > /usr/bin/ld:
> > > > CMakeFiles/fileviewsvnplugin.dir/fileviewsvnplugin_automoc.o:
> > > > relocation R_X86_64_32 against
> > > > `_ZN17FileViewSvnPlugin16staticMetaObjectE' can not be used when
> > > > making a shared object; recompile with -fPIC
> > > 
> > > ...
> > > 
> > > > blindly replacing kdesdk toplevel CMakeLists.txt with that from 4.8.4
> > > > makes things happy again.
> > > 
> > > So, more data:
> > > 
> > > ... = a bunch of -I... includes not relevant,
> > > 
> > > 4.8.4 gets compiled as:
> > > 
> > > cd .../kdesdk-4.8.4/build/dolphin-plugins/svn && /usr/lib64/ccache/c++
> > > 
> > >   -DMAKE_FILEVIEWSVNPLUGIN_LIB -D_BSD_SOURCE -D_XOPEN_SOURCE=500
> > > 
> > > -D_BSD_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT
> > > -DKDE_DEPRECATED_WARNINGS -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=48
> > > -DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS
> > > -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align
> > > -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security
> > > -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common
> > > -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden
> > > -Werror=return-type -fvisibility-inlines-hidden -O2 -g -DNDEBUG
> > > -DQT_NO_DEBUG -fPIC ...   -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o
> > > CMakeFiles/fileviewsvnplugin.dir/fileviewsvnplugin_automoc.o -c
> > > /home/rdieter1/pkgs.fedoraproject.org/kdesdk/foo/kdesdk-4.8.4/build/dol
> > > phi n- plugins/svn/fileviewsvnplugin_automoc.cpp
> > > 
> > > and in 4.8.90 this get's compiled with:
> > > 
> > > cd .../kdesdk-4.8.90/build/dolphin-plugins/svn && /usr/lib64/ccache/c++
> > > 
> > >   -DMAKE_FILEVIEWSVNPLUGIN_LIB -DQT_NO_STL -DQT_NO_CAST_TO_ASCII
> > > 
> > > -D_REENTRANT -DKDE_DEPRECATED_WARNINGS
> > > -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=48 -DQT_USE_FAST_CONCATENATION
> > > -DQT_USE_FAST_OPERATOR_PLUS -O2 -g -DQT_NO_DEBUG ...
> > > -D_LARGEFILE64_SOURCE -o
> > > CMakeFiles/fileviewsvnplugin.dir/fileviewsvnplugin_automoc.o -c
> > > /home/rdieter1/pkgs.fedoraproject.org/kdesdk/foo/kdesdk-4.8.90/build/do
> > > lph in -plugins/svn/fileviewsvnplugin_automoc.cpp
> > > 
> > > 
> > > many differences (mostly flags being removed), but most noticeable
> > > causing the immediate issue was -fPIC
> > > 
> > > any advice, clues, suggestions?
> > 
> > Can you try if the attached patch helps at least for the dolphin-plugins?
> 
> No, should not help from what I see :/
> 
> FindKDE4Internal.cmake has the line:
> --- 8< ---
> set(KDE4_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} -DQT_NO_STL -
> DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -
> DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=${_KDE4_CMAKE_TOPLEVEL_DIR_LENGTH})
> --- 8< ---
> 
> so now I even wonder what those lines in kdesdk/CMakeLists.txt are for:
> --- 8< ---
> # The FindKDE4.cmake module sets _KDE4_PLATFORM_DEFINITIONS with
> # definitions like _GNU_SOURCE that are needed on each platform.
> set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} -
> DQT_STRICT_ITERATORS)

CMAKE_REQUIR$ED_DEFINITIONS is used by the various check_*() macros provided 
by cmake, e.g. check_include_files() etc.
I don't know about -DQT_STRICT_ITERATORS.

Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-sdk-devel/attachments/20120611/dadddb7b/attachment.html>


More information about the kde-sdk-devel mailing list