[CMake] What about...

Brandon J. Van Every bvanevery at gmail.com
Fri May 26 08:03:59 EDT 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)
>
>   

Is this because the CMake workflow is deficient, or because it's not 
what you're already used to?  I don't think it's reasonable to say, "I 
don't like learning anything new."

> 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'.
>   

What build system uses this?  Although it could be a useful feature, 
I've never typed this before.  I have no natural training, inclination, 
or habit to type this sort of thing.  I have typed "./configure --help" 
plenty of times.

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

I don't understand the purpose of this in a CMake workflow.  Generally, 
one runs either CMakeSetup or CCMake.  Unless you are primarily 
concerned with batch jobs, and you're very confident they'll build.

> (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'.
>   
Top-level targets do have names.   For instance I can type "make 
libchicken" or "make libchicken-static".  File-level dependencies don't 
have convenient names, though.

> 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 ;)
>   
I'd like the whole autoconf toolchain to die.  I don't want to read 
autoconf docs, or sort through Makefile.am or ./configure or its 
bletcherous Makefile output anymore.   Forgive my underwhelming 
enthusiasm for anything that makes a ./configure-oriented person's life 
easier.  I'd rather you learn how to use CMake.

> 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 don't understand your question.  CMake generates several different 
types of native build files, i.e. make, nmake, Visual Studio .sln files, 
and others.  The .sln files can be run from inside Visual Studio, or 
they can be run on the command line with "devenv."  I believe if your 
make is actually gmake, and you have an appropriate link for that on  
your system (Windows may not), you could type "gmake." 


Cheers,
Brandon Van Every



More information about the CMake mailing list