diff options
author | Volker Krause <vkrause@kde.org> | 2022-02-11 19:13:47 +0100 |
---|---|---|
committer | Volker Krause <vkrause@kde.org> | 2022-02-11 19:14:37 +0100 |
commit | 676f90873b4d35c20976536844c36b8c0fbe06a5 (patch) | |
tree | 98663d3a5a4c04d7acf14c3fb1eebf292ef6ea36 /find-modules | |
parent | 402903e5caa15f483193cd10d97754ea73078f0e (diff) | |
download | extra-cmake-modules-676f90873b4d35c20976536844c36b8c0fbe06a5.tar.gz extra-cmake-modules-676f90873b4d35c20976536844c36b8c0fbe06a5.tar.bz2 |
Adapt Android toolchain file and FindGradle to Qt6
- We don't need the Threads target workaround anymore, that breaks the
build with Qt6 even.
- The Gradle wrapper shipped with Qt is no longer installed as executable,
so we need to run this in sh explicitly.
- Qt6 uses a different Android Gradle plugin version (not to be confused
with the Gradle version), which we need to make available for the
configure_file() call on the build.gradle file.
With this most Framework modules build against Qt6 here.
Diffstat (limited to 'find-modules')
-rw-r--r-- | find-modules/FindGradle.cmake | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/find-modules/FindGradle.cmake b/find-modules/FindGradle.cmake index 6d8d6929..792598ed 100644 --- a/find-modules/FindGradle.cmake +++ b/find-modules/FindGradle.cmake @@ -27,18 +27,24 @@ Installs a Android AAR library that has been created with ``gradle_add_aar``. Since 5.76.0. #]=======================================================================] +include(${CMAKE_CURRENT_LIST_DIR}/../modules/QtVersionOption.cmake) include(CMakeParseArguments) include(FindPackageHandleStandardArgs) -find_package(Qt5Core REQUIRED) +find_package(Qt${QT_MAJOR_VERSION}Core REQUIRED) +set (Gradle_PRECOMMAND "") if (NOT WIN32) set(Gradle_EXECUTABLE ${CMAKE_BINARY_DIR}/gradle/gradlew) + # the gradlew script installed by Qt6 is not executable, so running it directly fails + if (QT_MAJOR_VERSION EQUAL "6") + set(Gradle_PRECOMMAND "sh") + endif() else() set(Gradle_EXECUTABLE ${CMAKE_BINARY_DIR}/gradle/gradlew.bat) endif() -get_target_property(_qt_core_location Qt5::Core LOCATION) +get_target_property(_qt_core_location Qt${QT_MAJOR_VERSION}::Core LOCATION) get_filename_component(_qt_install_root ${_qt_core_location} DIRECTORY) get_filename_component(_qt_install_root ${_qt_install_root}/../ ABSOLUTE) @@ -50,6 +56,13 @@ add_custom_command(OUTPUT ${Gradle_EXECUTABLE} ) add_custom_target(gradle DEPENDS ${Gradle_EXECUTABLE}) +# Android Gradle plugin version (not the Gradle version!) used by Qt, for use in our own build.gradle files +if (QT_MAJOR_VERSION EQUAL "5") + set(Gradle_ANDROID_GRADLE_PLUGIN_VERSION 3.6.4) +else() + set(Gradle_ANDROID_GRADLE_PLUGIN_VERSION 7.0.2) +endif() + find_package_handle_standard_args(Gradle DEFAULT_MSG Gradle_EXECUTABLE) function(gradle_add_aar target) @@ -71,7 +84,7 @@ function(gradle_add_aar target) file(GLOB_RECURSE _src_files CONFIGURE_DEPENDS "*") add_custom_command( OUTPUT ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar - COMMAND ${Gradle_EXECUTABLE} ${_aar_gradleCmd} + COMMAND ${Gradle_PRECOMMAND} ${Gradle_EXECUTABLE} ${_aar_gradleCmd} # this allows make create-apk to work without installations for apps with AAR libs in the same repository COMMAND ${CMAKE_COMMAND} -E copy ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar ${CMAKE_BINARY_DIR}/jar/${ARG_NAME}.aar DEPENDS ${Gradle_EXECUTABLE} ${_src_files} |