@@ -7,6 +7,7 @@ foreach(var_name IN ITEMS
77 EXPECTED_MSVC_VERSION
88 EXPECTED_BATCH_FILENAME
99 EXPECTED_WRAPPER_FILENAME
10+ EXPECTED_PLATFORM_TOOLSET_VERSION
1011 )
1112 if (NOT DEFINED ${var_name} )
1213 message (FATAL_ERROR "Variable ${var_name} is not specified using -D${var_name} =<value>" )
@@ -34,6 +35,7 @@ set(expected_vars
3435 EXPECTED_MSVC_VERSION
3536 EXPECTED_BATCH_FILENAME
3637 EXPECTED_WRAPPER_FILENAME
38+ EXPECTED_PLATFORM_TOOLSET_VERSION
3739 )
3840foreach(var_name IN LISTS expected_vars)
3941 if(NOT DEFINED ${var_name})
@@ -54,6 +56,7 @@ foreach(var_suffix IN ITEMS
5456 FIND_VCVARSALL
5557 MSVC_ARCH
5658 MSVC_VERSION
59+ PLATFORM_TOOLSET_VERSION
5760 )
5861 if(DEFINED REQUESTED_${var_suffix} AND NOT FUNCTIONS_ONLY_COMPONENT_REQUESTED)
5962 set(Vcvars_${var_suffix} ${REQUESTED_${var_suffix}})
@@ -128,6 +131,7 @@ endfunction()
128131set(output_vars
129132 Vcvars_MSVC_ARCH
130133 Vcvars_MSVC_VERSION
134+ Vcvars_PLATFORM_TOOLSET_VERSION
131135 Vcvars_BATCH_FILE
132136 Vcvars_LAUNCHER
133137 )
@@ -141,6 +145,7 @@ message(STATUS "")
141145check_var_equals("Vcvars_FOUND" "TRUE")
142146
143147check_function_defined("Vcvars_ConvertMsvcVersionToVsVersion")
148+ check_function_defined("Vcvars_ConvertMsvcVersionToVcToolsetVersion")
144149check_function_defined("Vcvars_GetVisualStudioPaths")
145150check_function_defined("Vcvars_FindFirstValidMsvcVersion")
146151
@@ -198,16 +203,43 @@ check_msvc_version_to_vs_version_convert(Vcvars_VS71_MSVC_VERSIONS "7.1")
198203check_msvc_version_to_vs_version_convert(Vcvars_VS7_MSVC_VERSIONS "7.0")
199204check_msvc_version_to_vs_version_convert(Vcvars_VS6_MSVC_VERSIONS "6.0")
200205
206+ function(check_msvc_version_to_vc_toolset_version_convert msvc_versions_var expected_vc_toolset_version)
207+ foreach(msvc_version IN LISTS ${msvc_versions_var})
208+ Vcvars_ConvertMsvcVersionToVcToolsetVersion("${msvc_version}" output_var)
209+ if(NOT "${output_var}" STREQUAL "${expected_vc_toolset_version}")
210+ message(FATAL_ERROR "Vcvars_ConvertMsvcVersionToVcToolsetVersion failed for msvc_version [${msvc_version}]
211+ current_value [${output_var}]
212+ expected_value [${expected_vc_toolset_version}]
213+ ")
214+ endif()
215+ endforeach()
216+ endfunction()
217+
218+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS17_MSVC_VERSIONS "14.3")
219+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS16_MSVC_VERSIONS "14.2")
220+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS15_MSVC_VERSIONS "14.1")
221+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS14_MSVC_VERSIONS "14.0")
222+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS12_MSVC_VERSIONS "12.0")
223+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS11_MSVC_VERSIONS "11.0")
224+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS10_MSVC_VERSIONS "10.0")
225+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS9_MSVC_VERSIONS "9.0")
226+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS8_MSVC_VERSIONS "8.0")
227+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS71_MSVC_VERSIONS "7.1")
228+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS7_MSVC_VERSIONS "7.0")
229+ check_msvc_version_to_vc_toolset_version_convert(Vcvars_VS6_MSVC_VERSIONS "6.0")
230+
201231if(FUNCTIONS_ONLY_COMPONENT_REQUESTED)
202232 check_var_not_defined("Vcvars_FIND_VCVARSALL")
203233 check_var_not_defined("Vcvars_MSVC_ARCH")
204234 check_var_not_defined("Vcvars_MSVC_VERSION")
235+ check_var_not_defined("Vcvars_PLATFORM_TOOLSET_VERSION")
205236 check_var_not_defined("Vcvars_LAUNCHER")
206237 check_var_not_defined("Vcvars_LAUNCHER")
207238else()
208239 check_var_equals("Vcvars_FIND_VCVARSALL" "${EXPECTED_FIND_VCVARSALL}")
209240 check_var_equals("Vcvars_MSVC_ARCH" "${EXPECTED_MSVC_ARCH}")
210241 check_var_equals("Vcvars_MSVC_VERSION" "${EXPECTED_MSVC_VERSION}")
242+ check_var_equals("Vcvars_PLATFORM_TOOLSET_VERSION" "${EXPECTED_PLATFORM_TOOLSET_VERSION}")
211243
212244 check_file_exists("Vcvars_BATCH_FILE")
213245 check_filename_matches("Vcvars_BATCH_FILE" "${EXPECTED_BATCH_FILENAME}")
@@ -292,6 +324,7 @@ add_find_vcvars_test(
292324 -DEXPECTED_BATCH_FILENAME:STRING =${EXPECTED_BATCH_FILENAME}
293325 -DEXPECTED_WRAPPER_FILENAME:STRING =${EXPECTED_WRAPPER_FILENAME}
294326 -DEXPECTED_FIND_VCVARSALL:BOOL =FALSE
327+ -DEXPECTED_PLATFORM_TOOLSET_VERSION:BOOL =${EXPECTED_PLATFORM_TOOLSET_VERSION}
295328 )
296329
297330add_find_vcvars_test(
@@ -305,6 +338,7 @@ add_find_vcvars_test(
305338 -DEXPECTED_BATCH_FILENAME:STRING =vcvars64.bat
306339 -DEXPECTED_WRAPPER_FILENAME:STRING =vcvars64_wrapper.bat
307340 -DEXPECTED_FIND_VCVARSALL:BOOL =FALSE
341+ -DEXPECTED_PLATFORM_TOOLSET_VERSION:BOOL =${EXPECTED_PLATFORM_TOOLSET_VERSION}
308342 )
309343
310344add_find_vcvars_test(
@@ -318,6 +352,7 @@ add_find_vcvars_test(
318352 -DEXPECTED_BATCH_FILENAME:STRING =vcvars32.bat
319353 -DEXPECTED_WRAPPER_FILENAME:STRING =vcvars32_wrapper.bat
320354 -DEXPECTED_FIND_VCVARSALL:BOOL =FALSE
355+ -DEXPECTED_PLATFORM_TOOLSET_VERSION:BOOL =${EXPECTED_PLATFORM_TOOLSET_VERSION}
321356 )
322357
323358add_find_vcvars_test(
@@ -331,6 +366,7 @@ add_find_vcvars_test(
331366 -DEXPECTED_BATCH_FILENAME:STRING =${EXPECTED_BATCH_FILENAME}
332367 -DEXPECTED_WRAPPER_FILENAME:STRING =${EXPECTED_WRAPPER_FILENAME}
333368 -DEXPECTED_FIND_VCVARSALL:BOOL =FALSE
369+ -DEXPECTED_PLATFORM_TOOLSET_VERSION:BOOL =${EXPECTED_PLATFORM_TOOLSET_VERSION}
334370 )
335371
336372add_find_vcvars_test(
@@ -344,6 +380,7 @@ add_find_vcvars_test(
344380 -DEXPECTED_BATCH_FILENAME:STRING =vcvarsall.bat
345381 -DEXPECTED_WRAPPER_FILENAME:STRING =vcvarsall_wrapper.bat
346382 -DEXPECTED_FIND_VCVARSALL:BOOL =ON
383+ -DEXPECTED_PLATFORM_TOOLSET_VERSION:BOOL =${EXPECTED_PLATFORM_TOOLSET_VERSION}
347384 )
348385
349386add_find_vcvars_test(
@@ -357,5 +394,20 @@ add_find_vcvars_test(
357394 -DEXPECTED_BATCH_FILENAME:STRING =${EXPECTED_BATCH_FILENAME}
358395 -DEXPECTED_WRAPPER_FILENAME:STRING =${EXPECTED_WRAPPER_FILENAME}
359396 -DEXPECTED_FIND_VCVARSALL:BOOL =OFF
397+ -DEXPECTED_PLATFORM_TOOLSET_VERSION:BOOL =${EXPECTED_PLATFORM_TOOLSET_VERSION}
360398 )
361399
400+ add_find_vcvars_test(
401+ NAME "set-toolset"
402+ OPTIONS
403+ # Requested
404+ -DREQUESTED_FIND_VCVARSALL:BOOL =ON
405+ -DREQUESTED_PLATFORM_TOOLSET_VERSION:STRING =14.2
406+ # Expected
407+ -DEXPECTED_MSVC_ARCH:STRING =${EXPECTED_MSVC_ARCH}
408+ -DEXPECTED_MSVC_VERSION:STRING =${EXPECTED_MSVC_VERSION}
409+ -DEXPECTED_BATCH_FILENAME:STRING =vcvarsall.bat
410+ -DEXPECTED_WRAPPER_FILENAME:STRING =vcvarsall_wrapper.bat
411+ -DEXPECTED_FIND_VCVARSALL:BOOL =ON
412+ -DEXPECTED_PLATFORM_TOOLSET_VERSION:BOOL =14.2
413+ )
0 commit comments