
FWIW, CMake has an option to provide an initial cache file (using -C cache-filename). So, you can place those configuration details into your own initial cache file, and ask CMake to start with that configuration (configuring whatever else it needs) if you need to re-configure your tree.
Does initial cache use the same syntax as the ordinary cache,
Yes.
Hmm, does not work for me:
$ cp CMakeCache.txt initial $ cmake -C initial . loading initial cache file initial CMake Error: Error in cmake code at /tmp/x/initial:17: Parse error. Expected a command name, got unquoted argument with text "//Path". CMake Error: Error processing file:initial -- Configuring incomplete, errors occurred! $ cmake --version cmake version 2.6-patch 2
Am I doing something wrong?
The cmake file(s) that can be passed in via the "-C" option do not have the same syntax as CMakeCache.txt. Instead they have the normal CMake syntax (which I find easier to work with). For instance, you could have a file initial.cmake: # Contents of initial.cmake set(CMAKE_INSTALL_PREFIX "my/path/for/install" CACHE STRING "Where to put installed files" FORCE) This file could then be used: cmake -C initial.cmake my/path/to/source/tree
OK. Regardless of the reason for the above error -- which might well be my error -- I think I now understand the attractive parts of CMake configuration framework, and will make use of that understanding.
I would like to add that although the GUI and the easy to modify configuration of CMake is very nice, it is a very small fraction of the CMake configuration framework. Perhaps the more important feature is the ability to find third- party libraries on any number of host system configurations "automagically". I would expect that this feature is also one of the more difficult to duplicate. Respectfully, Justin