You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.8 KiB
41 lines
1.8 KiB
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()
|