-exec_program("${CMAKE_C_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_C_VERSION")
-exec_program("${CMAKE_CXX_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_CXX_VERSION")
-
-string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_C_VERSION "${COMPILER_C_VERSION}")
-string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_CXX_VERSION "${COMPILER_CXX_VERSION}")
+string(REGEX MATCH "cl.exe" VBC "${CMAKE_C_COMPILER}")
+string(REGEX MATCH "gcc" GCC "${CMAKE_C_COMPILER}")
+if(VBC)
+ exec_program("${CMAKE_C_COMPILER}" OUTPUT_VARIABLE "COMPILER_C_V")
+ string(REPLACE "\n" ";" COMPILER_C_V "${COMPILER_C_V}")
+ foreach(line ${COMPILER_C_V})
+ if(NOT COMPILER_C_VERSION)
+ set(COMPILER_C_VERSION "${line}")
+ set(COMPILER_CXX_VERSION "${line}")
+ endif(NOT COMPILER_C_VERSION)
+ endforeach(line ${COMPILER_C_V})
+endif(VBC)
+if(GCC)
+ exec_program("${CMAKE_C_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_C_VERSION")
+ exec_program("${CMAKE_CXX_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_CXX_VERSION")
+ string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_C_VERSION "${COMPILER_C_VERSION}")
+ string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_CXX_VERSION "${COMPILER_CXX_VERSION}")
+endif(GCC)