Skip to content

Commit

Permalink
CMake: handle Android features dependencies for modules
Browse files Browse the repository at this point in the history
QMake used to allow retrieving the Android features list for a modules.
The dependencies are written to *-android-dependencies.xml files and are
read by androiddeployqt. This option was missed at some point along the
way of writing CMake port for Qt 6.

Change-Id: Ic0b82f024567e640968f97aeff2db1888f2b53a5
Reviewed-by: Joerg Bornemann <[email protected]>
(cherry picked from commit 09fc4f9)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
Issam-b authored and Qt Cherry-pick Bot committed Feb 18, 2021
1 parent f78810b commit 9b98e84
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions cmake/QtAndroidHelpers.cmake
Original file line number Diff line number Diff line change
@@ -65,6 +65,16 @@ define_property(TARGET
FULL_DOCS
"Qt Module android permission list."
)

define_property(TARGET
PROPERTY
QT_ANDROID_FEATURES
BRIEF_DOCS
"Qt Module android feature list."
FULL_DOCS
"Qt Module android feature list."
)

# Generate Qt Module -android-dependencies.xml required by the
# androiddeploytoolqt to successfully copy all the plugins and other dependent
# items into tha APK
@@ -80,6 +90,7 @@ function(qt_android_dependencies target)
get_target_property(arg_LIB_DEPENDENCY_REPLACEMENTS ${target} QT_ANDROID_LIB_DEPENDENCY_REPLACEMENTS)
get_target_property(arg_BUNDLED_FILES ${target} QT_ANDROID_BUNDLED_FILES)
get_target_property(arg_PERMISSIONS ${target} QT_ANDROID_PERMISSIONS)
get_target_property(arg_FEATURES ${target} QT_ANDROID_FEATURES)
get_target_property(module_plugins ${target} MODULE_PLUGIN_TYPES)

if ((NOT module_plugins)
@@ -88,6 +99,7 @@ function(qt_android_dependencies target)
AND (NOT arg_LIB_DEPENDENCIES)
AND (NOT arg_BUNDLED_JAR_DEPENDENCIES)
AND (NOT arg_PERMISSIONS)
AND (NOT arg_FEATURES)
AND (NOT arg_BUNDLED_FILES))
# None of the values were set, so there's nothing to do
return()
@@ -194,6 +206,13 @@ function(qt_android_dependencies target)
endforeach()
endif()

# Android Features
if(arg_FEATURES)
foreach(feature IN LISTS arg_FEATURES)
string(APPEND file_contents "<feature name=\"${feature}\" />\n")
endforeach()
endif()

string(APPEND file_contents "</depends></lib>")
string(APPEND file_contents "</dependencies></rules>\n")
file(WRITE ${dependency_file} ${file_contents})

0 comments on commit 9b98e84

Please sign in to comment.