The following issue has been SUBMITTED. ====================================================================== http://www.cmake.org/Bug/view.php?id=13815 ====================================================================== Reported By: Stephen McCracken Assigned To: ====================================================================== Project: CMake Issue ID: 13815 Category: CMake Reproducibility: always Severity: minor Priority: normal Status: new ====================================================================== Date Submitted: 2012-12-26 19:10 EST Last Modified: 2012-12-26 19:10 EST ====================================================================== Summary: CMake uses compiler settings under CMakeFiles without verifying that they match the current generator. Description: The first time you run CMake in a clean directory, the enable_language(C) and enable_language(CXX) commands test the compilers for the currently-selected generator (say 32-bit Visual Studio 11) and caches the results in the files CMakeFiles/CMakeCCompiler.cmake and CMakeFiles/CMakeCXXCompiler.cmake.
If you then delete CMakeCache.txt and switch the generator to 64-bit Visual Studio 11 Win64, CMake will not re-test the compiler, and it will proceed with the incorrect cached results for the old (32-bit) generator. This behavior can be very confusing when debugging CMake errors. In my case, find_package( PythonLibs 2.7 ) was failing because I was trying to use a 64-bit Python 2.7.3 installation with the 32-bit Visual Studio 11 generator. However, when I switched to 64-bit and deleted CMakeCache.txt (but not the CMakeFiles directory), PythonLibs still was not found because CMake was reading CMAKE_SIZEOF_VOID_P=4 from the CMakeFiles directory, which make it look for 32-bit registry settings for the Python installation directory. Steps to Reproduce: 1) Create a simple CMakeLists.txt file with the following 2 lines: enable_language( CXX ) message( STATUS "CMAKE_SIZEOF_VOID_P=${CMAKE_SIZEOF_VOID_P}" ) 2) Run cmake-gui with the Visual Studio 11 generator, and observe the output: CMAKE_SIZEOF_VOID_P=4 3) Delete the CMakeCache.txt file. 4) Run cmake-gui again from the same directory, but choose the Visual Studio 11 Win64 generator. Observe the incorrect output value: CMAKE_SIZEOF_VOID_P=4 ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2012-12-26 19:10 Stephen McCrackenNew Issue ====================================================================== -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers