invitation: try compiling kdelibs using cmake
Mickael Marchand
marchand at kde.org
Wed Jan 25 23:49:38 CET 2006
Hi Alex,
I just did a quick try :)
I have kde4 in /opt/kde4 and cmake compiled from cvs in there
Qt4 (debug build) is in /opt/qt4
I've created a b2 directory in my kdelibs tree (build dir), and ran
cmake ../
it did all the checks pretty fine apparently but it does not seem to
find my Qt libs ...
> CMake Error: This project requires some variables to be set,
> and cmake can not find them.
> Please set the following variables:
> QT_QT3SUPPORT_LIBRARY (ADVANCED)
> QT_QTCORE_LIBRARY (ADVANCED)
> QT_QTGUI_LIBRARY (ADVANCED)
> QT_QTXML_LIBRARY (ADVANCED)
mikmak at alhya:~/src/kde/trunk/kdelibs/b2$ echo $QTDIR
/opt/qt4
does it require non-debug qt build maybe ?
Cheers,
Mik
Alexander Neundorf wrote:
> Hi,
>
> as many of you probably know during the last two weeks I was busy with making
> trunk kdelibs build with cmake (http://www.cmake.org).
>
> I think now I have reached a state were I can invite interested people to try
> compiling kdelibs with cmake.
>
> I compiled kdelibs successfully on Slackware 9.1 (gcc 3.2.3) and FreeBSD 5.4
> (gcc 3.4.2) , Bill Hoffman was able to compile it on Debian (gcc 4.x).
>
> kxmlcore and the directories which depend on it (kjs, khtml, kate) are still
> excluded from the build, neither gcc 3.2.3 on my slackware box nor gcc
> *3.4.2* on the FreeBSD box were able to compile it
> (http://lists.kde.org/?l=kfm-devel&m=113796106221351&w=2).
>
> Right now everything compiles and links and correct install rules are created.
> If the option "KDE4_BUILD_TESTS" is enabled, also most of the check_PROGRAMS
> are created (not all, I didn't understand all the custom rules yet).
>
> cmake supports Makefiles for basically every UNIX including Mac OS X. It also
> support Makefiles for cygwin, mingw and cl, and it support project files for
> XCode and MSVC 6,7 and 8.
>
> In order to compile kdelibs using cmake, you need cmake from current cmake
> cvs:
>
> $ cvs -d :pserver:anonymous at www.cmake.org:/cvsroot/CMake login
> (respond with password cmake)
> Follow this command by checking out the source code:
> $ cvs -d :pserver:anonymous at www.cmake.org:/cvsroot/CMake co CMake
> (as usual: configure, make, make install)
>
> Then build cmake: ./configure; make; make install
>
> Then enter the kdelibs directory, and enter "cmake ."
> Then the configure checks will be executed. If something isn't found, execute
> "ccmake ." and set the directories manually.
> If Qt 4 wasn't found, either set it manually or set the QTDIR environment
> variable.
>
> You can find all configure checks in kdelibs/ConfigureChecks.cmake.
>
> The check_XXX() functions come from the CheckXXX.cmake files located in
> kdelibs/cmake/modules/ and from the cmake system module directory,
> usually /usr/local/share/CMake/Modules/. So if one of these checks go wrong,
> look in these files to see what they are doing.
> To see what exactly went wrong, have a look at
> kdelibs/CMakeFiles/CMakeError.log
>
> In ConfigureChecks.cmake there are also some checks like
> find_package(Foo REQUIRED)
> These commands look for a file named "FindFoo.cmake", located either in
> kdelibs/cmake/modules/ or the system cmake module directory (as above).
> If something isn't found and you know it exists on your system, have a look at
> the FindFoo.cmake file.
> To understand the commands used there, either read the cmake man page or read
> the documentation online: http://www.cmake.org/HTML/Documentation.html (*very
> recommded*). also the cmake Wiki: http://www.cmake.org/Wiki/CMake .
>
> Ok, assume this step succeeded, simply run make. Chances are not too bad it
> will compile.
>
> If not, the reason is usually a missing include directory or a missing link
> library.
>
> The build is specified in the files named CMakeLists.txt.
> Important variables are CMAKE_SOURCE_DIR, CMAKE_BINARY_DIR,
> CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR, for more information
> see http://www.cmake.org/Wiki/CMake_Useful_Variables .
> Include directories are added using the include_directories() command.
> Additional libraries is linked to using the target_link_libraries() command.
>
> If you try to build it on Mac OS X or under Windows, you will immediately get
> an error message (see kdelibs/cmake/modules/FindKDE4.cmake . To get it
> working, remove the MESSAGE(FATAL_ERROR ...) from this file and see how far
> you get. Probably some of the system checks and FindFoo.cmake files have to
> be adjusted, compiler flags etc.
>
> if you need to write additional FindFoo.cmake scripts, you can use the
> kdelibs/cmake/generate_findpackage_file script, written in Ruby. It generates
> simple generic cmake scripts which follow the cmake style.
>
> If you have questions, please ask on the kde-buildsystem at kde.org mailing list,
> there are also two of the cmake developers subscribed. They want cmake to
> become the buildsystem for KDE 4.
>
> Have fun
> Alex
More information about the Kde-buildsystem
mailing list