1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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()
|