cmake

Thomas Zander zander at kde.org
Thu Jun 8 11:45:21 BST 2006


On Thursday 8 June 2006 11:14, Stephan Kulow wrote:
> Am Donnerstag, 8. Juni 2006 08:53 schrieb Thomas Zander:
> > I also learned that cmake is in its core nothing but a
> > makefile-generator. This means that it might be a good idea to
> > resurrect unsermake to sidesteps all of the design flaws cmake has
> > (like being dogslow on big trees).  Any takers? :-)
>
> Let me put some things straight: unsermake is basically a wild hack and
> the lack of people beside me understanding what it is proofs this kind
> of :)

Well, you still get hugs for make $KDEDIR/lib/mylib.la speeding up my 
workflow considerably while using unsermake :-)

> _Everything_ is dog slow on big trees - most of that is eaten up by IO
> and simply generating the trees and I couldn't feel cmake being slower
> than unsermake actually. What I feel though is lacking is good support
> for subtrees. Developing in kdelibs/kio will look at kdecore even
> though I don't want make to do that - just stealing my time. But this
> is most likely easy to fix and is not a "design flaw".

The issue is that cmake tries to make all subtrees behave like one tree 
while using a lot of makefiles and with the limitations of POSIX make 
this is just a recipe for failure.  This is the design flaw I'm looking 
at.
The part where I see it being very slow is if you type make in kio it does 
a lot of work outside of that sub-tree.  If the whole project does not 
fit in my cache then I'm stuffed.  So, subtrees were suppost to bring 
independence; cmake throws that out the window.
For more info on that problem:
http://www.cmake.org/Bug/bug.php?op=show&bugid=2389

Maybe some generated temporary dir with a list of hardlinks to all the 
>500 CMake*txt files in koffice can overcome that. That would be great. 
But for now, I'd call it a design flaw due to cmakes dependency on POSIX 
make.

> If just I wouldn't love spending my time on real issues, I'd write a
> XML backend for cmake that basically allows running cmake to configure
> and write out high level definitions of the things to build and then
> you could write a script similar to unsermake (you'll use less than 20%
> of the current code if you don't have to care for automake conditionals
> :) that gives the user better control/feedback.

:-D

> So please everyone: concentrate on the real issues and forget about
> build tools being able to display progress ;)

I fully agree on the progress thing.
The cmake people promised me to have all targets also have  a target/fast 
version. Where the fast does not do auto-dependency-checking at all.
I'd have to see it to figure out how usefull it is, though.

I'm currently slowed down in my development considerably by missing 
 "* Provide target for making+installing a single library"
It takes 20 seconds in the koffice 1.5 tree to change a small file and 
install the changed lib and it takes 5min (no joke!) to do the same in 
trunk.
For some reason this makes this a 'real issue' for me :-)
-- 
Thomas Zander
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20060608/5f940d54/attachment.sig>


More information about the kde-core-devel mailing list