
David Abrahams wrote:
on Wed May 09 2007, Bill Hoffman <bill.hoffman-AT-kitware.com> wrote:
Really? That surprises me.
Do the files generated by CMake encode specifics about the user's toolset locations and other things specific to the machine on which the builds are being performed?
For Makefiles, Cmake puts in rules to run itself to generate depend information. For all generators CMake puts in rules so that CMake will be re-run if one of its input files changes. Also, many shell like commands that are useful during the build process are provided by cmake. The install process is done by cmake. Basically, to be cross platform, you have to provide a bunch of functionality that is not provided by all platforms. In addition, CMake performs system introspection and finds installed libraries and header file locations for various packages, and that information is obviously not portable from machine to machine. It would be a much less full featured build set if you generated "movable" build files. However, CMake only requires a C++ compiler to build. So, if you are building a c++ project like Boost, then the native compiler and its tool chain are all that you need to build CMake. So, CMake does not require the user to install any thing beyond what they already have and the source to CMake. We do of course provide binaries for all major platforms. -Bill