[CMake] Enhancement of FIND_PACKAGE

Filipe Sousa filipe at ipb.pt
Fri Jan 27 09:28:35 EST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

EnigmailAlexander Neundorf wrote:
> Hi, 
>  
>  
> Did you follow the discussions about the KDE4 buildsystem ? 

No

> We will probably also need some extensions to the 
> FindQt4.cmake/UseQt4.cmake files. 
> They are now also in kde svn and will be synced when neccessary: 
> http://websvn.kde.org/trunk/KDE/kdelibs/cmake/modules/ 

Sorry to disappointing you, but I'm not using the Qt scripts that comes
with cmake. I've my own scripts for Qt3 and Qt4 so that I can do simple
things like this:

SET(QT_CONFIG GUI XML)
SET(sources main.cc mainwindow.ui mainwindow.cc mainwindow.h hello.qrc)
QT_ADD_EXECUTABLE(myproject WIN32 ${sources})

This will add appropriate define flags, include directories and linking

> In the CMakeLists.txt currently in KDE/kdelibs/ most targets link to 
> QT_QTCORE_LIBRARY , QT_QTGUI_LIBRARY or QT_QTXML_LIBRARY. These are the 
> non-debug versions. 
> Now some developers would like to use the debug versions of the Qt libs 
> without having to link to all of them. 
> We see two options: 
> 1)  
>  
> SET(QT_DONT_USE_THIS TRUE) 
> SET(QT_USE_THAT TRUE) 
> INCLUDE(UseQt4) 
> TARGET_LINK_LIBRARIES(kdeui ${QT_LIBRARIES} )  
>  
> in basically every CMakeLists.txt. 
>  
> 2) 
> write a macro which simplifies the above: 
> QT4_USE(QTCORE QTGUI QTXML) #specify only those you want to use 
> TARGET_LINK_LIBRARIES(kdeui ${QT_LIBRARIES} )  
>  
> 3) 
>  
> make wrappers for each of the QT_QTFOO_LIBRARY variables: 
>  
> IF(BUILDTYPE==DEBUG) 
>    SET(FOO_QTCORE_LIBRARY ${QT_QTCORE_LIBRARY_DEBUG) 
> ELSE 
>    SET(FOO_QTCORE_LIBRARY ${QT_QTCORE_LIBRARY) 
> ENDIF 

There is no need to do that, you can do this
SET(FOO_QTCORE_LIBRARY
  debug ${QT_QTCORE_LIBRARY_DEBUG}
  optimized ${QT_QTCORE_LIBRARY_OPT})
TARGET_LINK_LIBRARIES choses the right one

>  
> What do you think ? 
>  
> Bye 
> Alex 
>  
> 


- --
Filipe Sousa
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFD2i4TbQdNYqwwwCwRAkjOAJ4ti82tzjsTaf+ivh6Bzq6wldoFqgCePQ69
Avwgg1OpPBxTAOPcoYO07eA=
=/bI6
-----END PGP SIGNATURE-----


More information about the CMake mailing list