caching behavior
Alexander Neundorf
neundorf at kde.org
Tue Nov 17 19:46:13 CET 2009
Hi Andreas,
On Tuesday 17 November 2009, Andreas Hartmetz wrote:
> Hi,
>
> mjansen's mail about caching in FindTaglib.cmake reminded me of something:
> FindFoo.cmake modules often like to cache the fact that something is *not*
> present. CMake also caches install locations and library versions and never
> re-checks if they are still current.
Yes, to save time.
> The effect is that one needs to delete the cache manually way too often. I
> think other build systems handle this better (is this actually true
> though?). I'd like to ask the experts if this overzealous caching behavior
> can be fixed
Well, not everybody would agree that the current behaviour is broken...
> without every build taking ages to re-check everything. Or
> maybe auto*'s approach is a good idea: make it possible to rerun configure
> (in our case cmake), possibly with a flag to recheck everything, if in
> doubt.
Where's the difference to deleting the cache in that case ?
> currently one has to delete CMakeCache.txt first
You could also run cmake-gui, which makes it easy to delete just the entries
you want. You can also run cmake -U to undefine a set of variables from the
cache (or edit the cache file manually).
> and retype or copy and paste all the -D* options every time.
Which -D options do you need ? I usually only need CMAKE_INSTALL_PREFIX and
maybe CMAKE_BUILD_TYPE.
If you need many more options in many cases, maybe something else needs to be
changed.
> auto* has ./config.status.
> In my experience CMake newbies are regularly confused by the unexpected
> caching behavior and ask for help on IRC.
What exactly is unexpected ? That variables are not rechecked if they were
found once successfully ?
Alex
More information about the Kde-buildsystem
mailing list