diff options
| author | Alexey Edelev <alexey.edelev@qt.io> | 2025-04-24 13:19:53 +0200 |
|---|---|---|
| committer | Alexey Edelev <alexey.edelev@qt.io> | 2025-07-07 21:20:37 +0200 |
| commit | 9fc4e8de5903aa63bcc695178261a6a44e123cb1 (patch) | |
| tree | 25127a7c25c9c4c8550872822e3d61e77874d7d2 /src/corelib/Qt6AndroidGradleHelpers.cmake | |
| parent | 152b566cecbce323dd387550b3bd68c9c338342a (diff) | |
Make Android gradle source sets configurable
Add properties that control the Android gradle source sets. Properties
are internal only. Android applications default these properties to the
values we have in reference build.gradle template.
These properties only work for modern Android bundles.
Change-Id: I573293778ea18576411dd86695bbade6e25c4f56
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/corelib/Qt6AndroidGradleHelpers.cmake')
| -rw-r--r-- | src/corelib/Qt6AndroidGradleHelpers.cmake | 55 |
1 files changed, 44 insertions, 11 deletions
diff --git a/src/corelib/Qt6AndroidGradleHelpers.cmake b/src/corelib/Qt6AndroidGradleHelpers.cmake index 889438ffaad..227f07f31d8 100644 --- a/src/corelib/Qt6AndroidGradleHelpers.cmake +++ b/src/corelib/Qt6AndroidGradleHelpers.cmake @@ -23,6 +23,49 @@ function(_qt_internal_android_generate_bundle_settings_gradle target) INPUT "${template_file}") endfunction() +# Generates the source sets for the target. +function(_qt_internal_android_get_gradle_source_sets out_var target) + set(known_types java aidl res resources renderscript assets jniLibs) + set(source_set "") + set(indent " ") + foreach(type IN LISTS known_types) + set(source_dirs + "$<TARGET_PROPERTY:${target},_qt_android_gradle_${type}_source_dirs>") + string(JOIN "" source_set + "${source_set}" + "$<$<BOOL:${source_dirs}>:" + "${indent}${type}.srcDirs = ['$<JOIN:${source_dirs},'$<COMMA> '>']\n" + ">" + ) + endforeach() + + set(manifest + "$<TARGET_PROPERTY:${target},_qt_android_manifest>") + string(JOIN "" source_set + "${source_set}" + "$<$<BOOL:${manifest}>:" + "${indent}manifest.srcFile '${manifest}'\n" + ">" + ) + set(${out_var} "${source_set}" PARENT_SCOPE) +endfunction() + +# Sets the default values of the gradle properties for the Android executable target. +function(_qt_internal_set_android_application_gradle_defaults target) + _qt_internal_android_java_dir(android_java_dir) + + set_target_properties(${target} PROPERTIES + _qt_android_gradle_java_source_dirs "${android_java_dir}/src;src;java" + _qt_android_gradle_aidl_source_dirs "${android_java_dir}/src;src;aidl" + _qt_android_gradle_res_source_dirs "${android_java_dir}/res;res" + _qt_android_gradle_resources_source_dirs "resources" + _qt_android_gradle_renderscript_source_dirs "src" + _qt_android_gradle_assets_source_dirs "assets" + _qt_android_gradle_jniLibs_source_dirs "libs" + _qt_android_manifest "AndroidManifest.xml" + ) +endfunction() + # Generates the build.gradle file for the target. Writes the result to the target app deployment # directory. function(_qt_internal_android_generate_target_build_gradle target) @@ -42,17 +85,7 @@ function(_qt_internal_android_generate_target_build_gradle target) "Please check your Android SDK installation.") endif() - _qt_internal_android_java_dir(android_java_dir) - string(JOIN "\n " SOURCE_SETS - "manifest.srcFile 'AndroidManifest.xml'" - "java.srcDirs = ['${android_java_dir}/src', 'src', 'java']" - "aidl.srcDirs = ['${android_java_dir}/src', 'src', 'aidl']" - "res.srcDirs = ['${android_java_dir}/res', 'res']" - "resources.srcDirs = ['resources']" - "renderscript.srcDirs = ['src']" - "assets.srcDirs = ['assets']" - "jniLibs.srcDirs = ['libs']" - ) + _qt_internal_android_get_gradle_source_sets(SOURCE_SETS ${target}) string(JOIN "\n " GRADLE_DEPENDENCIES "implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])" |
