[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