[CMake] What about...
William A. Hoffman
billlist at nycap.rr.com
Fri May 26 10:24:32 EDT 2006
At 07:30 AM 5/26/2006, Thomas Zander wrote:
>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'.
After cmake is run, you can do
make help
It will show all the targets to choose from.
>cmake install
>to call 'make install' (naturally this goes for all targets)
cmake -P cmake_install.cmake
(that is what is run when you do make install)
>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.
This is hard to do, but is on the TODO list. Currently, make -j is our
only parallel approach.
>cmake -v
>for make VERBOSE=1
cmake -DCMAKE_VERBOSE_MAKEFILE=TRUE should do the trick.
>(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'.
make help will show the targets available. There are now also,
fast targets that do not do the whole check.
make library/fast
>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 ;)
That is very hard to do as configure scripts can have almost anything in them.
>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.
I am not sure I understand what you want to type to do the build?
If you build a makefile based project you run make to build it. If
you build an Xcode project your run the Xcode GUI, if you build Kdevelop,
you run that GUI, and if you do visual studio, you run that GUI.
With autoconf, you run make. What would you want to type to build?
-Bill
More information about the CMake
mailing list