[CMake] cmake cvs breaks kde4 builds

Brad King brad.king at kitware.com
Sun Jan 27 20:30:34 EST 2008


Andreas Pakulat wrote:
> Anyway, the latest cvs version from cmake (update 2 hours ago) produces
> the following entries in KDELibsDependencies.cmake. This file is
> generated using the export_library_dependecies() command:
> 
> SET(kdecore_LIB_DEPENDS "general;/home/andreas/qt-copy/lib/libQtCore.so;general;-lpthread;general;/home/andreas/qt-copy/lib/libQtNetwork.so;general;/home/andreas/qt-copy/lib/libQtDBus.so;general;/home/andreas/qt-copy/lib/libQtXml.so;general;libz.so;general;libbz2.so;general;resolv;")
> SET(kdeui_LIB_DEPENDS "general;/home/andreas/qt-copy/lib/libQtSvg.so;general;/home/andreas/qt-copy/lib/libQtCore.so;general;-lpthread;general;kdecore;general;-lSM;general;libICE.so;general;libX11.so;general;libXext.so;general;libXft.so;general;libXau.so;general;libXdmcp.so;general;libXpm.so;general;/home/andreas/qt-copy/lib/libQtGui.so;general;/home/andreas/qt-copy/lib/libQtXml.so;general;libXtst.so;general;libXcursor.so;general;libXfixes.so;")
> SET(kio_LIB_DEPENDS "general;/home/andreas/qt-copy/lib/libQtCore.so;general;-lpthread;general;kdecore;general;kdeui;general;libz.so;general;/home/andreas/kde4/lib/libstreamanalyzer.so;general;/home/andreas/kde4/lib/libstreams.so;general;/home/andreas/qt-copy/lib/libQtCore.so;general;-lpthread;general;kdecore;general;solid;general;libfam.so;general;libacl.so;general;libattr.so;general;libXrender.so;")
[snip]
> The linker call is:
> /usr/lib/ccache/c++  -fPIC -pipe -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -fno-check-new -fno-common -Woverloaded-virtual -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -Wl,--enable-new-dtags -Wl,--fatal-warnings -Wl,--no-undefined -lc  -shared -Wl,-soname,libkresources.so.4 -o ../lib/libkresources.so.4.1.0 "CMakeFiles/kresources.dir/kresources_automoc.cpp.o" "CMakeFiles/kresources.dir/resource.cpp.o" "CMakeFiles/kresources.dir/factory.cpp.o" "CMakeFiles/kresources.dir/managerimpl.cpp.o" "CMakeFiles/kresources.dir/configwidget.cpp.o" "CMakeFiles/kresources.dir/configdialog.cpp.o" "CMakeFiles/kresources.dir/selectdialog.cpp.o" "CMakeFiles/kresources.dir/configpage.cpp.o" "CMakeFiles/kresources.dir/idmapper.cpp.o" "CMakeFiles/kresources.dir/kresourcesmanageradaptor.cpp.o" /home/andreas/qt-copy/lib/libQtCore.so -lpthread -lkdecore -lkdeui -lz /home/andreas/kde4/lib/libstre
amanalyzer.so /home/andreas/kde4/lib/libstreams.so /home/andreas/qt-copy/lib/libQtCore.so -lpthread -lkdecore -lsolid -lfam -lacl -lattr -lXrender /home/andreas/kde4/lib/libkio.so /home/andreas/qt-copy/lib/libQtSvg.so -lSM -lICE -lX11 -lXext -lXft -lXau -lXdmcp -lXpm -lXtst -lXcursor -lXfixes /home/andreas/qt-copy/lib/libQtNetwork.so -lbz2 -lresolv /home/andreas/qt-copy/lib/libQtCore.so -lpthread /home/andreas/qt-copy/lib/libQtDBus.so /home/andreas/qt-copy/lib/libQtXml.so /home/andreas/qt-copy/lib/libQtGui.so -Wl,-rpath,/home/andreas/qt-copy/lib:/home/andreas/kde4/lib 

If something is using the export_library_dependencies file then there 
must be a project outside kdelibs involved.  Are you using the same 
version of CMake for both trees?

In CVS CMake I can do

   target_link_libraries(myexe general m)

and it links okay (no -lgeneral).  With CMake 2.4 the command produces 
-lgeneral.  It looks like you're using CMake CVS for the exporting 
project and CMake 2.4 for the importing project.

FYI, the change producing this was done over a year ago in CVS CMake:

revision 1.111
date: 2006-11-29 11:00:17 -0500;  author: martink;  state: Exp;  lines: 
+60 -94
ENH: updated handling of debug and optimized target link libraries

-Brad



More information about the CMake mailing list