I have a system with several copies of Visual Studio installed. When I set the generator for "Visual Studio 9 2008" it ends up picking up a different compiler:
CMAKE_C_COMPILER:FILEPATH=C:/Program Files (x86)/SCE/Common/VSI/bin/cl.exe I think this is because of the following code in CMakeDetermineCCompiler.cmake (which I can't figure out how it's invokes by the cmake-gui or cmake.exe): # Find the compiler. IF (_CMAKE_USER_CXX_COMPILER_PATH) FIND_PROGRAM(CMAKE_C_COMPILER NAMES ${CMAKE_C_COMPILER_LIST} PATHS ${_CMAKE_USER_CXX_COMPILER_PATH} DOC "C compiler" NO_DEFAULT_PATH) ENDIF (_CMAKE_USER_CXX_COMPILER_PATH) FIND_PROGRAM(CMAKE_C_COMPILER NAMES ${CMAKE_C_COMPILER_LIST} DOC "C compiler") IF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER) SET(CMAKE_C_COMPILER "${CMAKE_C_COMPILER_INIT}" CACHE FILEPATH "C compiler" FORCE) ENDIF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER) I believe the CMAKE_C_COMPILER_LIST contains "cl" as is the default of CMAKE_GENERATOR_CC for VS generators. Typically VS isn't in the default path, so the first two FIND_PROGRAM commands don't yield any usable results. Then the next block sets the CMAKE_C_COMPILER to "cl", and everything is OK, because if it's run from within the project, VS sets the paths so its cl.exe is first. However if there is another cl.exe in the system PATH, then that version will get picked up by the second FIND_PROGRAM, and thus cause a bit of trouble later on when the copies of cl.exe aren't the same. Does this seem like a bug to anyone? It seems like if you would want cl to point to the same version as your copy of Visual Studio. Perhaps $(VCInstallDir) could be used with a custom command to generate what VS thinks the path should be? Anyone have any thoughts? I'm using CMake 2.8.2 and 2.8.6 on windows. James
-- 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://www.cmake.org/mailman/listinfo/cmake