[CMake] --enable-* with cmake

Bill Hoffman bill.hoffman at kitware.com
Fri Aug 10 09:15:14 EDT 2007


.....  (lots of stuff).....

Since CMake is a language that is parsed when cmake is run, there is no 
way to present the user
with all possible options until you run cmake.  Options can be included 
inside an if statement.
This is actually a good thing.  For example, if the user enables 
VTK_PARALLEL, then and
only then are they presented with the options for finding MPI.   This 
avoids presenting all
options as a configure --help might do.  Even if those options depend on 
each other.

There are two levels of options advanced and non-advanced.  
It is best to only have a few options as non-advanced.   Used correctly, 
this
can avoid giving a user too many options up front.

The process for configuring a cmake project has to be iterative because 
options can
be nested inside if statements.   ccmake, cmake -i and CMakeSetup all do 
the following:

1. Configure
2. Write CMakeCache.txt
3. Did the CMakeCache.txt change ?   Yes-> Go back to 1
4. Allow the user to generate the project files.

Given this, it will be impossible for a cmake project to ever 
automatically have
cmake --help.  


-Bill



More information about the CMake mailing list