• Brad King's avatar
    Make platform information files specific to the CMake version · 7195aca5
    Brad King authored
    At the top of a build tree we configure inside the CMakeFiles directory
    files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to
    save information detected about the system and compilers in use.  The
    method of detection and the exact results store varies across CMake
    versions as things improve.  This leads to problems when loading files
    configured by a different version of CMake.  Previously we ignored such
    existing files only if the major.minor part of the CMake version
    component changed, and depended on the CMakeCache.txt to tell us the
    last version of CMake that wrote the files.  This led to problems if the
    user deletes the CMakeCache.txt or we add required information to the
    files in a patch-level release of CMake (still a "feature point" release
    by modern CMake versioning convention).
    Ensure that we always have version-consistent platform information files
    by storing them in a subdirectory named with the CMake version.  Every
    version of CMake will do its own system and compiler identification
    checks even when a build tree has already been configured by another
    version of CMake.  Stored results will not clobber those from other
    versions of CMake which may be run again on the same tree in the future.
    Loaded results will match what the system and language modules expect.
    Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to
    CMAKE_PLATFORM_INFO_DIR to clarify its purpose.  The new variable points
    at the version-specific directory while the old variable did not.