2016-02-22 17:44:29 +00:00
|
|
|
include(CMakeDetermineVSServicePack)
|
|
|
|
|
|
|
|
# The code is almost identical to the CMake version. The only difference is that we remove
|
|
|
|
# _DetermineVSServicePack_FastCheckVersionWithCompiler which lead to errors on some systems.
|
|
|
|
function(EigenDetermineVSServicePack _pack)
|
|
|
|
if(NOT DETERMINED_VS_SERVICE_PACK OR NOT ${_pack})
|
|
|
|
if(NOT DETERMINED_VS_SERVICE_PACK)
|
|
|
|
_DetermineVSServicePack_CheckVersionWithTryCompile(DETERMINED_VS_SERVICE_PACK _cl_version)
|
|
|
|
if(NOT DETERMINED_VS_SERVICE_PACK)
|
|
|
|
_DetermineVSServicePack_CheckVersionWithTryRun(DETERMINED_VS_SERVICE_PACK _cl_version)
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(DETERMINED_VS_SERVICE_PACK)
|
|
|
|
if(_cl_version)
|
|
|
|
# Call helper function to determine VS version
|
|
|
|
_DetermineVSServicePackFromCompiler(_sp "${_cl_version}")
|
2018-04-04 05:14:58 +00:00
|
|
|
|
|
|
|
# temporary fix, until CMake catches up
|
|
|
|
if (NOT _sp)
|
|
|
|
if(${_cl_version} VERSION_EQUAL "17.00.50727.1")
|
|
|
|
set(_sp "vc110")
|
|
|
|
elseif(${_cl_version} VERSION_EQUAL "17.00.51106.1")
|
|
|
|
set(_sp "vc110sp1")
|
|
|
|
elseif(${_cl_version} VERSION_EQUAL "17.00.60315.1")
|
|
|
|
set(_sp "vc110sp2")
|
|
|
|
elseif(${_cl_version} VERSION_EQUAL "17.00.60610.1")
|
|
|
|
set(_sp "vc110sp3")
|
|
|
|
else()
|
|
|
|
set(_sp ${CMAKE_CXX_COMPILER_VERSION})
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2016-02-22 17:44:29 +00:00
|
|
|
if(_sp)
|
|
|
|
set(${_pack} ${_sp} CACHE INTERNAL
|
|
|
|
"The Visual Studio Release with Service Pack")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
endfunction()
|