aboutsummaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorGabriel Souza Franco <gabrielfrancosouza@gmail.com>2020-09-11 09:49:50 -0300
committerAleix Pol Gonzalez <aleixpol@kde.org>2020-09-16 14:53:29 +0000
commit3672943cf1128470cae08c70f2d5c97887cd3125 (patch)
treec1126fee0e5ea4046cc6b6e89b04f51539d35fda /toolchain
parent4a3659f1d474b8a94bd4d28e1ab919d7d4e6d28c (diff)
downloadextra-cmake-modules-3672943cf1128470cae08c70f2d5c97887cd3125.tar.gz
extra-cmake-modules-3672943cf1128470cae08c70f2d5c97887cd3125.tar.bz2
Store Android {min,target,compile}Sdk in variables
Also pass along these values to androiddeployqt
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/Android.cmake17
-rw-r--r--toolchain/ECMAndroidDeployQt.cmake2
-rw-r--r--toolchain/deployment-file-qt514.json.in2
-rw-r--r--toolchain/deployment-file.json.in2
4 files changed, 19 insertions, 4 deletions
diff --git a/toolchain/Android.cmake b/toolchain/Android.cmake
index 3e6a877c..e3ace15a 100644
--- a/toolchain/Android.cmake
+++ b/toolchain/Android.cmake
@@ -45,8 +45,12 @@
# ``ANDROID_ABI``
# The ABI to use. See the ``sources/cxx-stl/gnu-libstdc++/*/libs``
# directories in the NDK. Default: ``armeabi-v7a``.
+# ``ANDROID_SDK_COMPILE_API``
+# The platform API level to compile against. May be different from the NDK
+# target. Default: newest installed version (e.g. android-30).
# ``ANDROID_SDK_BUILD_TOOLS_REVISION``
-# The build tools version to use. Default: ``21.1.1``.
+# The build tools version to use.
+# Default: newest installed version (e.g. ``30.0.2``).
# ``ANDROID_EXTRA_LIBS``
# The ";"-separated list of full paths to libs to include in resulting APK.
#
@@ -137,9 +141,16 @@ set_deprecated_variable(CMAKE_ANDROID_ARCH_ABI ANDROID_ABI "$ENV{ANDROID_ARCH_AB
set(ANDROID_SDK_ROOT "$ENV{ANDROID_SDK_ROOT}" CACHE PATH "Android SDK path")
+file(GLOB platforms LIST_DIRECTORIES TRUE RELATIVE ${ANDROID_SDK_ROOT}/platforms ${ANDROID_SDK_ROOT}/platforms/*)
+list(GET platforms -1 _default_platform)
+set(ANDROID_SDK_COMPILE_API "${_default_platform}" CACHE STRING "Android API Level")
+if(ANDROID_SDK_COMPILE_API MATCHES "^android-([0-9]+)$")
+ set(ANDROID_SDK_COMPILE_API ${CMAKE_MATCH_1})
+endif()
+
file(GLOB build-tools LIST_DIRECTORIES TRUE RELATIVE ${ANDROID_SDK_ROOT}/build-tools ${ANDROID_SDK_ROOT}/build-tools/*)
-list(GET build-tools 0 _default_sdk)
-set(ANDROID_SDK_BUILD_TOOLS_REVISION "${_default_sdk}" CACHE STRING "Android API Level")
+list(GET build-tools -1 _default_sdk)
+set(ANDROID_SDK_BUILD_TOOLS_REVISION "${_default_sdk}" CACHE STRING "Android Build Tools version")
set(CMAKE_SYSTEM_VERSION ${CMAKE_ANDROID_API})
set(CMAKE_SYSTEM_NAME Android)
diff --git a/toolchain/ECMAndroidDeployQt.cmake b/toolchain/ECMAndroidDeployQt.cmake
index d5f70336..d6ef8778 100644
--- a/toolchain/ECMAndroidDeployQt.cmake
+++ b/toolchain/ECMAndroidDeployQt.cmake
@@ -78,7 +78,7 @@ function(ecm_androiddeployqt QTANDROID_EXPORTED_TARGET ECM_ADDITIONAL_FIND_ROOT_
COMMAND cmake -E copy "$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" "${EXECUTABLE_DESTINATION_PATH}"
COMMAND LANG=C cmake "-DTARGET=$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" -P ${_CMAKE_ANDROID_DIR}/hasMainSymbol.cmake
COMMAND LANG=C cmake -DINPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json.in2" -DOUTPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json" "-DTARGET=$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" "-DOUTPUT_DIR=$<TARGET_FILE_DIR:${QTANDROID_EXPORTED_TARGET}>" "-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}" "-DECM_ADDITIONAL_FIND_ROOT_PATH=\"${ECM_ADDITIONAL_FIND_ROOT_PATH}\"" "-DANDROID_EXTRA_LIBS=\"${ANDROID_EXTRA_LIBS}\"" -P ${_CMAKE_ANDROID_DIR}/specifydependencies.cmake
- COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --gradle --input "${QTANDROID_EXPORTED_TARGET}-deployment.json" --apk "${ANDROID_APK_OUTPUT_DIR}/${QTANDROID_EXPORTED_TARGET}-${CMAKE_ANDROID_ARCH_ABI}.apk" --output "${EXPORT_DIR}" --deployment bundled ${arguments}
+ COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --gradle --input "${QTANDROID_EXPORTED_TARGET}-deployment.json" --apk "${ANDROID_APK_OUTPUT_DIR}/${QTANDROID_EXPORTED_TARGET}-${CMAKE_ANDROID_ARCH_ABI}.apk" --output "${EXPORT_DIR}" --android-platform android-${ANDROID_SDK_COMPILE_API} --deployment bundled ${arguments}
)
add_custom_target(install-apk-${QTANDROID_EXPORTED_TARGET}
diff --git a/toolchain/deployment-file-qt514.json.in b/toolchain/deployment-file-qt514.json.in
index ac069c4d..65e2a0b8 100644
--- a/toolchain/deployment-file-qt514.json.in
+++ b/toolchain/deployment-file-qt514.json.in
@@ -13,6 +13,8 @@
"android-package-source-directory": "$<TARGET_PROPERTY:create-apk-${QTANDROID_EXPORTED_TARGET},ANDROID_APK_DIR>",
"stdcpp-path": "@CMAKE_SYSROOT@/usr/lib",
"sdkBuildToolsRevision": "@ANDROID_SDK_BUILD_TOOLS_REVISION@",
+ "android-min-sdk-version": "@ANDROID_API_LEVEL@",
+ "android-target-sdk-version": "@ANDROID_SDK_COMPILE_API@",
"extraPrefixDirs": [ @EXTRA_PREFIX_DIRS@ ],
"architectures": { "@CMAKE_ANDROID_ARCH_ABI@": "@ECM_ANDROID_STL_ARCH@" }
}
diff --git a/toolchain/deployment-file.json.in b/toolchain/deployment-file.json.in
index 8ca5be8b..206e069d 100644
--- a/toolchain/deployment-file.json.in
+++ b/toolchain/deployment-file.json.in
@@ -15,5 +15,7 @@
"android-package-source-directory": "$<TARGET_PROPERTY:create-apk-${QTANDROID_EXPORTED_TARGET},ANDROID_APK_DIR>",
"stdcpp-path":##CMAKE_CXX_STANDARD_LIBRARIES##,
"sdkBuildToolsRevision": "@ANDROID_SDK_BUILD_TOOLS_REVISION@",
+ "android-min-sdk-version": "@ANDROID_API_LEVEL@",
+ "android-target-sdk-version": "@ANDROID_SDK_COMPILE_API@",
"extraPrefixDirs": [ @EXTRA_PREFIX_DIRS@ ]
}