From 850ee280e0bb726771ea14f247ba1524b0c3dd64 Mon Sep 17 00:00:00 2001 From: Michael Karcher Date: Fri, 21 Apr 2023 18:00:35 +0200 Subject: VS/Android: Set API level explicitly during compiler identification VS2022 defaults to API 31 in 64-bit builds. This breaks if you combine VS2022 with an older Android NDK. --- Modules/CMakeDetermineCompilerId.cmake | 2 ++ Modules/CompilerId/VS-10.vcxproj.in | 1 + 2 files changed, 3 insertions(+) (limited to 'Modules') diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index c7240081f5..403766e561 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -345,6 +345,7 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_platform ${CMAKE_VS_PLATFORM_NAME}) set(id_lang "${lang}") set(id_PostBuildEvent_Command "") + set(id_api_level "") if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Ll][Ll][Vv][Mm](_v[0-9]+(_xp)?)?$") set(id_cl_var "ClangClExecutable") elseif(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Cc][Ll][Aa][Nn][Gg]([Cc][Ll]$|_[0-9])") @@ -430,6 +431,7 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_system "") endif() if(id_keyword STREQUAL "Android") + set(id_api_level "android-${CMAKE_SYSTEM_VERSION}") if(CMAKE_GENERATOR MATCHES "Visual Studio 14") set(id_system_version "2.0") elseif(CMAKE_GENERATOR MATCHES "Visual Studio 1[567]") diff --git a/Modules/CompilerId/VS-10.vcxproj.in b/Modules/CompilerId/VS-10.vcxproj.in index 9bd618c95a..fa324d8214 100644 --- a/Modules/CompilerId/VS-10.vcxproj.in +++ b/Modules/CompilerId/VS-10.vcxproj.in @@ -26,6 +26,7 @@ @id_config_type@ @id_toolset@ + @id_api_level@ MultiByte -- cgit v1.2.1