diff options
author | Friedrich W. H. Kossebau <kossebau@kde.org> | 2016-05-03 17:00:24 +0200 |
---|---|---|
committer | Friedrich W. H. Kossebau <kossebau@kde.org> | 2016-05-03 17:00:24 +0200 |
commit | e0cfec7848ba63190957e107c7ef32dbe0119c42 (patch) | |
tree | bbe700543d38547fbe427cf56deed6867e508be8 | |
parent | d914de956197c72e4df55b7b09ebae1222c5ddcf (diff) | |
download | extra-cmake-modules-e0cfec7848ba63190957e107c7ef32dbe0119c42.tar.gz extra-cmake-modules-e0cfec7848ba63190957e107c7ef32dbe0119c42.tar.bz2 |
Android deployment: support projects without things in share or lib/qmlv5.22.0-rc1v5.22.0
Just setting the field android-extra-plugins to an empty string resulted
in androiddeployqt complaining about
"External resource does not exist or not a correct directory!"
so the field is completely left out now if no plugin data dirs are found.
For consistency the same is done with the android-extra-libs field.
REVIEW: 127700
BUG: 362578
Thanks apol for review
-rw-r--r-- | toolchain/Android.cmake | 2 | ||||
-rw-r--r-- | toolchain/deployment-file.json.in | 4 | ||||
-rw-r--r-- | toolchain/specifydependencies.cmake | 19 |
3 files changed, 22 insertions, 3 deletions
diff --git a/toolchain/Android.cmake b/toolchain/Android.cmake index 60bd058d..20e65f87 100644 --- a/toolchain/Android.cmake +++ b/toolchain/Android.cmake @@ -183,7 +183,7 @@ if(DEFINED QTANDROID_EXPORTED_TARGET AND NOT TARGET ${CREATEAPK_TARGET_NAME}) COMMAND cmake -E remove_directory "${EXPORT_DIR}" COMMAND cmake -E copy_directory "${ANDROID_APK_DIR}" "${EXPORT_DIR}" COMMAND cmake -E copy "$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" "${EXECUTABLE_DESTINATION_PATH}" - COMMAND cmake -DINPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json.in" -DOUTPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json" "-DTARGET_DIR=$<TARGET_FILE_DIR:${QTANDROID_EXPORTED_TARGET}>" "-DTARGET_NAME=${QTANDROID_EXPORTED_TARGET}" -P ${_CMAKE_ANDROID_DIR}/specifydependencies.cmake + COMMAND cmake -DINPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json.in" -DOUTPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json" "-DTARGET_DIR=$<TARGET_FILE_DIR:${QTANDROID_EXPORTED_TARGET}>" "-DTARGET_NAME=${QTANDROID_EXPORTED_TARGET}" "-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}" -P ${_CMAKE_ANDROID_DIR}/specifydependencies.cmake COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --input "${QTANDROID_EXPORTED_TARGET}-deployment.json" --output "${EXPORT_DIR}" --deployment bundled "\\$(ARGS)" ) else() diff --git a/toolchain/deployment-file.json.in b/toolchain/deployment-file.json.in index 9367bc1b..e691e431 100644 --- a/toolchain/deployment-file.json.in +++ b/toolchain/deployment-file.json.in @@ -8,8 +8,8 @@ "ndk-host": "@_HOST@", "target-architecture": "@ANDROID_ABI@", "application-binary": "@EXECUTABLE_DESTINATION_PATH@", - "android-extra-libs": "##EXTRALIBS##", - "android-extra-plugins": "@CMAKE_INSTALL_PREFIX@/share,@CMAKE_INSTALL_PREFIX@/lib/qml", + ##EXTRALIBS## + ##EXTRAPLUGINS## "android-package-source-directory": "@ANDROID_APK_DIR@", "sdkBuildToolsRevision": "@ANDROID_SDK_BUILD_TOOLS_REVISION@" } diff --git a/toolchain/specifydependencies.cmake b/toolchain/specifydependencies.cmake index 21b169ae..e01c61a7 100644 --- a/toolchain/specifydependencies.cmake +++ b/toolchain/specifydependencies.cmake @@ -16,7 +16,26 @@ foreach(lib IN LISTS outout) #now we filter Qt5 libraries, because Qt wants to t endif() endif() endforeach() +if(extralibs) + set(extralibs "\"android-extra-libs\": \"${extralibs}\",") +endif() + +set(extraplugins) +foreach(folder "share" "lib/qml") #now we check for folders with extra stuff + set(plugin "${EXPORT_DIR}/${folder}") + if(EXISTS "${plugin}") + if(extraplugins) + set(extraplugins "${extraplugins},${plugin}") + else() + set(extraplugins "${plugin}") + endif() + endif() +endforeach() +if(extraplugins) + set(extraplugins "\"android-extra-plugins\": \"${extraplugins}\",") +endif() file(READ "${INPUT_FILE}" CONTENTS) string(REPLACE "##EXTRALIBS##" "${extralibs}" NEWCONTENTS "${CONTENTS}") +string(REPLACE "##EXTRAPLUGINS##" "${extraplugins}" NEWCONTENTS "${NEWCONTENTS}") file(WRITE "${OUTPUT_FILE}" ${NEWCONTENTS}) |