diff options
author | akhropov <akhropov@yandex-team.com> | 2024-06-04 13:38:03 +0300 |
---|---|---|
committer | akhropov <akhropov@yandex-team.com> | 2024-06-04 13:49:16 +0300 |
commit | a3be9e767f11083d9c5fbc634157367aad15a43f (patch) | |
tree | a617134e515e8956d74330508ddf474f7ad1ce1e | |
parent | 4106eea04f837a5213898cf991d9db841a841870 (diff) | |
download | ydb-a3be9e767f11083d9c5fbc634157367aad15a43f.tar.gz |
Properly detect Visual Studio version if non-standard toolset for this version is used.. #2302
0843dd6fab7789634d13bdde50586f8d122288fa
-rw-r--r-- | build/export_generators/cmake/cmake/conan.cmake | 14 | ||||
-rw-r--r-- | build/export_generators/hardcoded-cmake/cmake/conan.cmake | 14 |
2 files changed, 28 insertions, 0 deletions
diff --git a/build/export_generators/cmake/cmake/conan.cmake b/build/export_generators/cmake/cmake/conan.cmake index a8e812acbd1..5e42e26c9d4 100644 --- a/build/export_generators/cmake/cmake/conan.cmake +++ b/build/export_generators/cmake/cmake/conan.cmake @@ -39,6 +39,20 @@ include(CMakeParseArguments) function(_get_msvc_ide_version result) set(${result} "" PARENT_SCOPE) + + # VisualStudioVersion is set by vcvars*.bat + if(DEFINED ENV{VisualStudioVersion}) + string(REGEX MATCH "([0-9]+)\.0" _ $ENV{VisualStudioVersion}) + if(CMAKE_MATCH_COUNT EQUAL 1) + set(${result} ${CMAKE_MATCH_1} PARENT_SCOPE) + return() + else() + message(FATAL_ERROR "Conan: Unexpected env variable VisualStudioVersion format [$ENV{VisualStudioVersion}]") + endif() + endif() + + # fallback to MSVC_VERSION which is set only based on _MSC_VER and can differ from the really installed + # Visual Studio version if non-standard toolset is used if(NOT MSVC_VERSION VERSION_LESS 1400 AND MSVC_VERSION VERSION_LESS 1500) set(${result} 8 PARENT_SCOPE) elseif(NOT MSVC_VERSION VERSION_LESS 1500 AND MSVC_VERSION VERSION_LESS 1600) diff --git a/build/export_generators/hardcoded-cmake/cmake/conan.cmake b/build/export_generators/hardcoded-cmake/cmake/conan.cmake index a8e812acbd1..5e42e26c9d4 100644 --- a/build/export_generators/hardcoded-cmake/cmake/conan.cmake +++ b/build/export_generators/hardcoded-cmake/cmake/conan.cmake @@ -39,6 +39,20 @@ include(CMakeParseArguments) function(_get_msvc_ide_version result) set(${result} "" PARENT_SCOPE) + + # VisualStudioVersion is set by vcvars*.bat + if(DEFINED ENV{VisualStudioVersion}) + string(REGEX MATCH "([0-9]+)\.0" _ $ENV{VisualStudioVersion}) + if(CMAKE_MATCH_COUNT EQUAL 1) + set(${result} ${CMAKE_MATCH_1} PARENT_SCOPE) + return() + else() + message(FATAL_ERROR "Conan: Unexpected env variable VisualStudioVersion format [$ENV{VisualStudioVersion}]") + endif() + endif() + + # fallback to MSVC_VERSION which is set only based on _MSC_VER and can differ from the really installed + # Visual Studio version if non-standard toolset is used if(NOT MSVC_VERSION VERSION_LESS 1400 AND MSVC_VERSION VERSION_LESS 1500) set(${result} 8 PARENT_SCOPE) elseif(NOT MSVC_VERSION VERSION_LESS 1500 AND MSVC_VERSION VERSION_LESS 1600) |