[CMake] What changes to the cache file, if any, will trigger a rerun of CMake?

Marcel Loose loose at astron.nl
Wed Sep 23 16:28:04 EDT 2009


On Wednesday 23 September 2009 17:45:39 Tyler Roscoe wrote:
> On Wed, Sep 23, 2009 at 03:02:31PM +0200, Marcel Loose wrote:
> > What changes to the cache file (CMakeCache.txt) will trigger a rerun of
> > CMake. AFAIK changes to CMAKE_<LANG>_COMPILER will do this, but are
> > there other situations?
>
> Don't all changes to the cache trigger a CMake rebuild?
>
> > My reason for asking this is that I was wondering whether it is possible
> > to force a re-run of CMake when one or more OPTION variables are changed
> > in the cache *during* a CMake run.
>
> This sounds a little scary but I think I've seen CMake do this when I
> edit a CMakeLists in the middle of a build on Linux. Other build systems
> might have different ideas about when to check whether the
> CMake-generated files are out of date, so this might only work on some
> platforms.
>
> tyler

Well, I created a macro (inspired by the KDE macro in kdelibs, 
"macro_optional_add_subdirectory") that will only do add_subdirectory() if the 
directory actually exists (useful to do partial builds of large projects). 
Inside the conditional part of that macro is the option() command to define a 
new build option. So, in that case, a new option is added to the cache 
*during* a CMake run. I wasn't sure if these changes would always trigger a 
re-run of CMake, cause my (few) experiments were a bit inconclusive.

But, if each change to CMakeCache.txt triggers a CMake re-run, then I should 
be safe.

Best regards,
Marcel Loose.



More information about the CMake mailing list