[CMake] --enable-* with cmake

Brandon Van Every bvanevery at gmail.com
Fri Aug 10 11:47:14 EDT 2007


On 8/10/07, Eric Noulard <eric.noulard at gmail.com> wrote:
>
>             I think there is a confusion here.
>            ./configure does not give you "full help" unless the writer
>            of the configure scripts did it using --enable-xx or --with-xxx.
>            I may well write ugly configure.ac (in fact I did it in the past)
>            which won't help you AT ALL, even if the script will do its jobs
>            perfectly.

Seconded.  The vast majority of --enable-with-xxx options I've seen
are thoroughly tweaky and obfuscated, like why the heck would I bother
figuring out all of that?  I just want to set the basics that are
common to all builds (like debug vs. optimize) and have everything
work with the push of 1 button.  Perhaps a power user wants and even
needs all those compilation options, but mostly it's just bad build
design to be presenting the masses with legions of options.  Mostly
your build should just produce whatever people are actually likely to
need in the real world, this should be the default.

For instance, I don't ask whether the user wants to build shared or
static libraries, it's a dumb question.  On platforms where they're
both supported, I build both.  On the Mac, where static libraries are
officially depreciated, I don't.  There's an OPTION to build them if
you really really want to scrounge around with that.  And if you want
to scrounge around, I figure you'd better know what you're doing and I
don't mind if you have to comb through CMakeLists.txt to verify what
you're doing.


>
>            May be CMake user should be taught to use more OPTION
>            in order to give more informations (using OPTION description)
>            to the user.

I think the Help button in CMakeSetup does tell the user what they
need to do.  Is that text not clear enough?  Now, maybe the user won't
hit the Help button?

Mousing over the cache entries does produce info in the status bar.
Right-clicking gives appropriate choices, including help.  The only
training improvement I can see here is maybe including balloon help.
Maybe flashing the status bar so it's more noticeable would have the
same effect.


Cheers,
Brandon Van Every


More information about the CMake mailing list