42 lines
1.8 KiB
CMake
42 lines
1.8 KiB
CMake
|
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}")
|
||
|
|
||
|
# 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()
|
||
|
|
||
|
if(_sp)
|
||
|
set(${_pack} ${_sp} CACHE INTERNAL
|
||
|
"The Visual Studio Release with Service Pack")
|
||
|
endif()
|
||
|
endif()
|
||
|
endif()
|
||
|
endif()
|
||
|
endfunction()
|