[CMake] --enable-* with cmake

gga ggarra at advancedsl.com.ar
Fri Aug 10 01:00:12 EDT 2007


Brandon Van Every wrote:
> On 8/8/07, gga <ggarra at advancedsl.com.ar> wrote:
>> I know I can pass -D symbols to cmake to modify its behavior and that
>> windows also has its ugly CmakeSetup gui.
> 
> "Ugly?"  Geez, what are you, a candidate for Windows Aero or something?
> 

No, I am a candidate for something that works and ccmake/cmakesetup does
not work well.  Don't confuse eye candy with functionality.  When I mean
ugly, I mean there's basic functionality missing from ccmake/cmakesetup.

This, unfortunately, clearly rules cmake from being a good candidate to
replace autotools, even if its core is much better.

The problems with the current approach are:
	- Variables for configuration are unknown to the user unless he
	  digs into all of the cmake modules used.
          Compare this to running any autotools project:
               ./configure
          (you get full help for all the libs and options you can use).

               ./cmake
           (I get cmake's documentation, nothing about my project)
              ../ccmake (on a clean project)
           (Nothing)

        - ccmake/cmakesetup list variables in the cache only.
	  If you are building out of source (as I do), the
          CMakeCache.txt and the CMakeLists.txt are in
          different directories, which again can be confusing to a user.
	- As ccmake/cmakesetup rely on cached variables, a user running
          the project for the first time will not get ANY variables
          when he runs ccmake.  He HAS to run cmake first.
	- ccmake/cmakesetup lists pretty much ALL variables.
	  Scary as hell to a user not familiar with your project and
          tedious to find the variable you need if you do know the
          project.
	- AFAIK, -D does not allow DISABLING options, like --disable-X
	  does.  The FindXXX modules will take over and find the library
	  even if I told it to disable some library.


-- 
Gonzalo Garramuño
ggarra at advancedsl.com.ar

AMD4400 - ASUS48N-E
GeForce7300GT
Kubuntu Edgy


More information about the CMake mailing list