Android: rename and clarify QT_ANDROID_API_VERSION CMake variable

- The CMake variable QT_ANDROID_API_VERSION is renamed to
  QT_ANDROID_API_USED_FOR_JAVA to make it explicit that this Android API
  version is used for Java code building.
- Similarly, the qmake variable ANDROID_API_VERSION_TO_USE is renamed to
  ANDROID_API_USED_FOR_JAVA for consistency with the CMake
  variable.
- Add a comment to clarify that the Android API version is used for
  Java code building.

Fixes: QTBUG-125756
Change-Id: Iea6028778dbfef23e4e22bde10fe3d4b714f4dab
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
Shyamnath Premnadh 2024-08-05 13:27:09 +02:00
parent b71be29278
commit 8d2d5563b5
2 changed files with 21 additions and 19 deletions

View File

@ -11,8 +11,8 @@
# Variables: # Variables:
# QT_ANDROID_JAR # QT_ANDROID_JAR
# Location of the adroid sdk jar for java code # Location of the adroid sdk jar for java code
# QT_ANDROID_API_VERSION # QT_ANDROID_API_USED_FOR_JAVA
# Android API version # Android API version for building java code
# #
if (NOT DEFINED ANDROID_SDK_ROOT) if (NOT DEFINED ANDROID_SDK_ROOT)
@ -24,19 +24,20 @@ if (NOT IS_DIRECTORY "${ANDROID_SDK_ROOT}")
endif() endif()
# Get the Android SDK jar for an API version other than the one specified with # Get the Android SDK jar for an API version other than the one specified with
# QT_ANDROID_API_VERSION. # QT_ANDROID_API_USED_FOR_JAVA.
function(qt_get_android_sdk_jar_for_api api out_jar_location) function(qt_get_android_sdk_jar_for_api api out_jar_location)
set(jar_location "${ANDROID_SDK_ROOT}/platforms/${api}/android.jar") set(jar_location "${ANDROID_SDK_ROOT}/platforms/${api}/android.jar")
if (NOT EXISTS "${jar_location}") if (NOT EXISTS "${jar_location}")
message(WARNING "Could not locate Android SDK jar for api '${api}', defaulting to ${QT_ANDROID_API_VERSION}") message(WARNING "Could not locate Android SDK jar for api '${api}', defaulting to ${QT_ANDROID_API_USED_FOR_JAVA}")
set(${out_jar_location} ${QT_ANDROID_JAR} PARENT_SCOPE) set(${out_jar_location} ${QT_ANDROID_JAR} PARENT_SCOPE)
else() else()
set(${out_jar_location} ${jar_location} PARENT_SCOPE) set(${out_jar_location} ${jar_location} PARENT_SCOPE)
endif() endif()
endfunction() endfunction()
# Minimum recommend android SDK api version # This variable specifies the API level used for building Java code, it can be the same as Qt for
set(QT_ANDROID_API_VERSION "android-34") # Android's maximum supported Android version or higher.
set(QT_ANDROID_API_USED_FOR_JAVA "android-34")
function(qt_internal_sort_android_platforms out_var) function(qt_internal_sort_android_platforms out_var)
if(CMAKE_VERSION GREATER_EQUAL 3.18) if(CMAKE_VERSION GREATER_EQUAL 3.18)
@ -83,22 +84,23 @@ if(android_platforms)
qt_internal_get_android_platform_version(latest_platform_version qt_internal_get_android_platform_version(latest_platform_version
"${android_platform_latest}") "${android_platform_latest}")
qt_internal_get_android_platform_version(required_platform_version qt_internal_get_android_platform_version(required_platform_version
"${QT_ANDROID_API_VERSION}") "${QT_ANDROID_API_USED_FOR_JAVA}")
if("${latest_platform_version}" VERSION_GREATER "${required_platform_version}") if("${latest_platform_version}" VERSION_GREATER "${required_platform_version}")
set(QT_ANDROID_API_VERSION ${android_platform_latest}) set(QT_ANDROID_API_USED_FOR_JAVA ${android_platform_latest})
endif() endif()
endif() endif()
set(QT_ANDROID_JAR "${ANDROID_SDK_ROOT}/platforms/${QT_ANDROID_API_VERSION}/android.jar") set(QT_ANDROID_JAR "${ANDROID_SDK_ROOT}/platforms/${QT_ANDROID_API_USED_FOR_JAVA}/android.jar")
if(NOT EXISTS "${QT_ANDROID_JAR}") if(NOT EXISTS "${QT_ANDROID_JAR}")
message(FATAL_ERROR message(FATAL_ERROR
"No suitable Android SDK platform found in '${ANDROID_SDK_ROOT}/platforms'." "No suitable Android SDK platform found in '${ANDROID_SDK_ROOT}/platforms'."
" Minimum version is ${QT_ANDROID_API_VERSION}" " The minimum version required for building Java code is ${QT_ANDROID_API_USED_FOR_JAVA}"
) )
endif() endif()
message(STATUS "Using Android SDK API ${QT_ANDROID_API_VERSION} from ${ANDROID_SDK_ROOT}/platforms") message(STATUS "Using Android SDK API ${QT_ANDROID_API_USED_FOR_JAVA} from "
"${ANDROID_SDK_ROOT}/platforms")
# Locate Java # Locate Java
include(UseJava) include(UseJava)

View File

@ -1,21 +1,21 @@
API_VERSION_TO_USE = $$(ANDROID_API_VERSION) ANDROID_API_USED_FOR_JAVA = $$(ANDROID_API_VERSION)
isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = $$API_VERSION isEmpty(ANDROID_API_USED_FOR_JAVA): ANDROID_API_USED_FOR_JAVA = $$API_VERSION
isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = android-34 isEmpty(ANDROID_API_USED_FOR_JAVA): ANDROID_API_USED_FOR_JAVA = android-34
ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$API_VERSION_TO_USE/android.jar ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$ANDROID_API_USED_FOR_JAVA/android.jar
!exists($$ANDROID_JAR_FILE) { !exists($$ANDROID_JAR_FILE) {
ANDROID_API_VERSION = $$section(API_VERSION_TO_USE, -, 1, 1) # Get version number from android-XY to ensure numeric comparison ANDROID_API_VERSION = $$section(ANDROID_API_USED_FOR_JAVA, -, 1, 1) # Get version number from android-XY to ensure numeric comparison
ANDROID_API_VERSIONS = $$files($$ANDROID_SDK_ROOT/platforms/*) ANDROID_API_VERSIONS = $$files($$ANDROID_SDK_ROOT/platforms/*)
for (VERSION, ANDROID_API_VERSIONS) { for (VERSION, ANDROID_API_VERSIONS) {
BASENAME = $$basename(VERSION) BASENAME = $$basename(VERSION)
BASENAME = $$section(BASENAME, -, 1, 1) BASENAME = $$section(BASENAME, -, 1, 1)
greaterThan(BASENAME, $$ANDROID_API_VERSION): ANDROID_API_VERSION = $$BASENAME greaterThan(BASENAME, $$ANDROID_API_VERSION): ANDROID_API_VERSION = $$BASENAME
} }
API_VERSION_TO_USE = android-$$ANDROID_API_VERSION ANDROID_API_USED_FOR_JAVA = android-$$ANDROID_API_VERSION
ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$API_VERSION_TO_USE/android.jar ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$ANDROID_API_USED_FOR_JAVA/android.jar
} }
!exists($$ANDROID_JAR_FILE) { !exists($$ANDROID_JAR_FILE) {
error("No suitable Android SDK platform found. Minimum version is $${API_VERSION_TO_USE}.") error("No suitable Android SDK platform found. Minimum version for building Java code is $${ANDROID_API_USED_FOR_JAVA}.")
} }
JAVACLASSPATH += $$ANDROID_JAR_FILE JAVACLASSPATH += $$ANDROID_JAR_FILE