KDE & CMake (was Re: [CMake] the remaining problems with compiling KDE with cmake)

Alexander Neundorf a.neundorf-work at gmx.net
Thu Jun 16 12:10:43 EDT 2005


Hi Bill, 
 
thanks for responding :-) 
 
> Von: "William A. Hoffman" <billlist at nycap.rr.com> 
>  
> So, for this list of requirements: 
> Can you explain the ones I have marked with ??? 
>  
> Must support: 
>  - generating binaries (duh)   OK 
>  - generating shared libs (on all ELF platforms + MacOS X; Windows?)  
OK 
>  - icon installation   ??? 
 
Currently the icon directories in the sources look like: 
hi16-app-foo.png 
hi32-app-foo.png 
hi48-app-foo.png 
hi16-app-bar.png 
hi32-app-bar.png 
hi48-app-bar.png 
... 
 
and the Makefile.am: 
 
KDE_ICON = AUTO 
 
which will install e.g. hi16-app-foo.png 
to /opt/kde/share/icons/hicolor/16x16/apps/foo.png. 
 
I guess this should also be possible with some clever cmake macro. 
 
>  - uic, moc, KConfigXT, etc   OK 
>  - GCC visibility   ???? 
 
testing for the version of gcc and add some flag (-fvisibility or 
something like this), so, yes 
 
>  - automatic dependency resolution  OK 
>  - manual hints for dependency resolution  OK 
>  - flex/bison   OK 
 
I didn't find anything yet ? 
 
>  - non-recursive (flat) builds   OK (cmake 2.2) 
>  - --enable-final   ???? 
 
generate a source file which includes all source files, and compile this 
one. This speeds up compilation a lot. Works, see KDEMagic.cmake in 
http://websvn.kde.org/trunk/KDE/kdevelop/cmake/ 
 
>  - builddir != srcdir   OK 
>  - simple to the point of being learnable within 5 minutes  OK 
>  - kdeinit support (?)  ???? 
 
Instead of an application create a shared lib, which can be dlopened() by 
the kdeinit process and then forked and kdemain() executed (makes startup 
of apps faster and uses less memory). Requires generating a source file, 
works, but haven't committed yet. 
 
>  - --compile-slots, like in unsermake  ???? 
 
if I understood this correctly, this is like make -j, but it links only 
in one process, only the compiling works in more processes. This is 
useful for network-compiling (distcc, icecream, etc.). I guess you can't 
do anything about this, since this depends on the buildtool. 
 
>  - pkg-config support   OK 
>  - support rpath sanely   OK 
>  - ability to link & run uninstalled binaries   OK 
 
Can you please explain a bit more ? How is pkg-config supported ? How is 
this linking and running not-yet-installed libs and apps supported ? How 
is rpath used ? 
 
>  - easily integrated into KDevelop    OK 
>  - 'admin' needs to be shipped in KDE instead of in src of each 
app   ??? 
 
Currently each stand-alone KDE app comes with a huge admin/ dir 
containing all the autotools stuff. Usually it is bigger than the actual 
sources. No problem there with cmake. 
 
> I think cmake can do most of this with no problem.   Why is scons the 
> front runner right now? 
 
Ordered by significance (from my impression): 
1) the all-upper-case commands look ugly to several developers 
2) several developers prefer python 
3) there are already some KDE apps using scons (rosegarden I think) 
 
I have another question: 
can ctest be used with svn ? 
 
Bye 
Alex 
 

-- 
Weitersagen: GMX DSL-Flatrates mit Tempo-Garantie!
Ab 4,99 Euro/Monat: http://www.gmx.net/de/go/dsl


More information about the CMake mailing list