The following issue has been SUBMITTED. ====================================================================== http://public.kitware.com/Bug/view.php?id=15640 ====================================================================== Reported By: James Johnston Assigned To: ====================================================================== Project: CMake Issue ID: 15640 Category: CMake Reproducibility: always Severity: major Priority: normal Status: new ====================================================================== Date Submitted: 2015-07-07 11:04 EDT Last Modified: 2015-07-07 11:04 EDT ====================================================================== Summary: CMake converts generator from Visual Studio 9 2008 to Visual Studio 10 2010 if ZERO_CHECK fails Description: When using CMake with the Visual Studio 9 2008 generator, if the ZERO_CHECK "project" fails (e.g. due to a FATAL_ERROR or whatever in the CMakeLists.txt file), the entire CMake project is converted to Visual Studio 10 2010!
Since the build tree is now in who-knows-what corrupted state, I have no choice but to delete the whole build tree and start over. It's quite time-consuming. The issue doesn't seem to be easily reproduced outside of the ZERO_CHECK project - e.g. I couldn't figure out how to reproduce it with cmake-gui.exe or cmake.exe. Steps to Reproduce: 1. Make a new source tree with the following CMakeLists.txt file: cmake_minimum_required(VERSION 3.3.0 FATAL_ERROR) project(TestProject) #message(FATAL_ERROR "Error") 2. Create empty build tree directory as normal, cd to it, and run: cmake "-GVisual Studio 9 2008" <path to source tree> 3. Open the generated Visual Studio solution in Visual C++ 2008. (I used Express version). 4. Edit the CMakeLists.txt and remove the comment on "message" so that the CMake configure will fail now. 5. Build the ZERO_CHECK project; note that it fails as expected. 6. Remark out the "message" from CMakeLists.txt so that CMake once again will configure ok. 7. Build the ZERO_CHECK project again. This time, ZERO_CHECK will convert everything over to Visual Studio 2010: * The CMake output shown in Visual Studio "Output" pane says "Building for Visual Studio 10 2010". * The CMakeCache.txt holds: CMAKE_GENERATOR:INTERNAL=Visual Studio 10 2010 * Visual Studio 2008 refuses to reload the solution ("created by a newer version of this application and cannot be opened") * Examination of the build tree shows a VS2010 solution and VCPROJ/VCXPROJ files side-by-side... Additional Information: The problem has been successfully reproduced with both CMake 3.3.0-rc1 and the nightly cmake-3.3.20150706-g32b76-win32-x86 build. ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2015-07-07 11:04 James Johnston New Issue ====================================================================== -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers