diff options
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} |