[CMake] Re: Re: FindQt4 in 2.4.8 bug
Fernando Cacciola
fernando.cacciola at gmail.com
Fri Feb 1 08:37:52 EST 2008
Hi Bill,
> Can you add a :
Better let me start over, I think I know what's going on now.
Maybe is the intended behaviour. If it is, I think is quite odd.
Consider the following simple script:
set ( var "whatever" CACHE PATH "" )
message ( STATUS "${var}" )
I would expect to see "whatever" as the value of var since it is being
explicitely set, but that's not neccesarily what happens: if the cache
*already* contains a value for var, say "xyz", then that value sticks and
var is just never set to "whatever" unless FORCE is added (as I found out
and reported eariler in this thread)
Is this the expected behaviour?
If it is, then it leads to a problem when SET is used for example like this:
set ( QT_INCLUDE_DIR ${qt4_include_dir} CACHE PATH "" )
because if at some earlier run qt4 was actually not found, QT_INCLUDE_DIR
gets set to NOTFOUND and once there it is never reset to the include path
even if qt4 is properly found later. The only way out this tirany is to
delete the cache and star over.
IMO the rule that says "do not override exisitng cache values unless FORCE
is specified" should be relaxed to have "null values" be always overwritten.
Or at the very least there should be a FORCE_IF_NULL option, because it
makes no sense at all to keep a NOTFOUND value for an INCLUDE_DIR when the
right path is available.
Best
--
Fernando Cacciola
SciSoft
http://fcacciola.50webs.com
http://groups.google.com/group/cppba
More information about the CMake
mailing list