Android: Populate CMAKE_HOST_SYSTEM_VERSION on native builds

Follow up commit c5892e484e (Android: add support for native
compilation, such as with the Termux app, 2019-10-15,
v3.17.0-rc1~594^2).
This commit is contained in:
funsafe-ptr
2023-07-01 02:35:04 +07:00
committed by Brad King
parent 684a6d828b
commit fff6c469f8

View File

@@ -47,6 +47,28 @@ if(CMAKE_HOST_UNIX)
set(CMAKE_HOST_SYSTEM_VERSION "${_CMAKE_HOST_SYSTEM_MAJOR_VERSION}.${_CMAKE_HOST_SYSTEM_MINOR_VERSION}")
unset(_CMAKE_HOST_SYSTEM_MAJOR_VERSION)
unset(_CMAKE_HOST_SYSTEM_MINOR_VERSION)
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
execute_process(COMMAND getprop ro.build.version.sdk
OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(NOT DEFINED CMAKE_SYSTEM_VERSION)
set(_ANDROID_API_LEVEL_H $ENV{PREFIX}/include/android/api-level.h)
set(_ANDROID_API_REGEX "#define __ANDROID_API__ ([0-9]+)")
file(READ ${_ANDROID_API_LEVEL_H} _ANDROID_API_LEVEL_H_CONTENT)
string(REGEX MATCH ${_ANDROID_API_REGEX} _ANDROID_API_LINE "${_ANDROID_API_LEVEL_H_CONTENT}")
string(REGEX REPLACE ${_ANDROID_API_REGEX} "\\1" _ANDROID_API "${_ANDROID_API_LINE}")
if(_ANDROID_API)
set(CMAKE_SYSTEM_VERSION "${_ANDROID_API}")
endif()
unset(_ANDROID_API_LEVEL_H)
unset(_ANDROID_API_LEVEL_H_CONTENT)
unset(_ANDROID_API_REGEX)
unset(_ANDROID_API_LINE)
unset(_ANDROID_API)
endif()
else()
execute_process(COMMAND ${CMAKE_UNAME} -r
OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION