[CMake] What about...

Thomas Zander zander at kde.org
Fri May 26 07:30:06 EDT 2006


Hiya;
In KDE (including KOffice) we switched to cmake, as you are probably 
aware. I naturally like the speedups we got in linking etc. but I like 
the less then stellar usability of the cmake solution a lot less. (at 
this point I would gladly go back to the slower linking, to be honest)

I'm wondering if you guys can look over some features I have seen/used in 
other make systems and see if you can steal some ideas. I would love to 
know what you guys think of these and if/when you can get them in cmake.

cmake --projecthelp
To print all 'make' targets the user can choose from.  Makes it easy to 
find things like 'make dox'.

cmake install
to call 'make install' (naturally this goes for all targets)

cmake --compile-jobs=n
similar to -j but only for compile jobs, so it will not make multiple 
link/etc jobs be run at the same time.

cmake -v
for make VERBOSE=1

(c)make /usr/local/foo/bar/baz.la
will compile the sources needed only for that lib and link/install it.  
Tends to be faster then a 'make all install'.

A 'configure' script generator that will just convert between the (good 
old) configure and the cmake foo.  Makes it actually possible to discover 
what features there are without consulting online documentation ;)

Finally; I searched the FAQ / docs but I found no answer to a nagging 
question of mine.  Why oh why did you guys choose to use make as the 
command the developer has to type.  That decision leaves you without any 
options to make the user experience any better. I honestly can't tell 
people to type 'make VERBOSE=1' and not apologize in the same sentence 
about the horrible usability of that.

-- 
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://public.kitware.com/pipermail/cmake/attachments/20060526/c4e7839c/attachment.pgp


More information about the CMake mailing list