Build system for KDE4

Alexander Neundorf neundorf at kde.org
Tue Jun 14 21:49:44 BST 2005


On Tuesday 14 June 2005 20:49, Alexander Neundorf wrote:
...
>
> In some way cmake reminds me on Qt: it's written and maintained by a
> company, it's available as open source, it has good documentation, and it's
> implemented in C++.
>
> Bye
> Alex

What I forgot to mention:
-in kdevelop/cmake you can find am2cmake, a script which converts 
Makefile.am's to cmake's CMakeLists.txt (the LD_ADD and LIB_ADD vars are 
still ignored, most other things work)

-KDE_ADD_KPART() creates a KDE part with the given name from the listed 
sources, the same can be done for an application, library, etc.

-AFAICT cmake supports java in some way. I never used it, but there are some 
source files which deal with handling java files

-if you want to know more details about linking behaviour of cmake, consider 
subscribing to the cmake mailing list and contacting the developers directly 
(Thiago ?) They are usually very open for suggestion which improve cmake. 

-now KDE_ADD_KPART() also comes with "enable-final", here's the code, as you 
see it's simple:

#define a user-adjustable option, default off
OPTION(KDE_ENABLE_FINAL "Enable final all-in-one compilation")

#just the stuff which implements enable-final
MACRO(KDE_ADD_KPART _target_NAME )
...
  #if the option was enabled (e.g. in the cmake gui)
  IF (KDE_ENABLE_FINAL)
    #generate a file including all the source files
    FILE(WRITE ${_target_NAME}_final.cpp "//autogenerated file\n")
    FOREACH (_current_FILE ${_magic_SRCS})
      FILE(APPEND ${_target_NAME}_final.cpp "#include \"${_current_FILE}\"\n")
    ENDFOREACH (_current_FILE)
    #and create the library from this generated file
    ADD_LIBRARY(${_target_NAME} MODULE  ${_target_NAME}_final.cpp)
  #otherwise proceed as normal
  ELSE (KDE_ENABLE_FINAL)
    ADD_LIBRARY(${_target_NAME} MODULE ${_magic_SRCS} )
  ENDIF (KDE_ENABLE_FINAL)
...
ENDMACRO(KDE_ADD_KPART _target_NAME)

Bye
Alex
-- 
Work: alexander.neundorf at jenoptik.com - http://www.jenoptik-los.de
Home: neundorf at kde.org                - http://www.kde.org
      alex at neundorf.net               - http://www.neundorf.net




More information about the kde-core-devel mailing list