aboutsummaryrefslogtreecommitdiff
path: root/toolchain/ECMAndroidDeployQt.cmake
AgeCommit message (Collapse)Author
2022-03-21Android: use the current cmake executableAlex Neundorf
By using ${CMAKE_COMMAND} we make sure the current cmake is used, instead of relying that some cmake can be found in the path
2021-04-07Add a way to pass additional arguments to androiddeployqtVolker Krause
We need this to pass the --release option for binary factory release builds. An alternative approach would be to set that here automatically depending on the CMake build type. Since that however ends up producing unsigned and thus not immediately usable APKs (or would need a whole set of extra arguments for proper signing) I'm not sure whether that's most convenient for local use.
2020-12-19Automatically detect plugin lib deps on AndroidGabriel Souza Franco
This makes use of the CMake 3.19 DEFER command to list all MODULE targets after processing the toplevel CMakeLists. This allows us to collect required dependencies of all plugins without changes to the application. For example, this will fix Okular not including Poppler because it is only linked from the plugin, thus not being able to actually read PDFs.
2020-12-01Add fastlane metadata generation for Android buildsVolker Krause
This is currently done on the signing machines as part of the F-Droid nightly pipeline, but should rather happen as part of the build process in the future. Compared to the binary factory script this has a few extensions already: - Besides recovering information from APKs we can now consume appdata files directly, or scan the entire source dir. - Screenshots from appdata files are downloaded. - The 'x-test' language is ignored. - Donation and translation information are added. - Add links to the source code repository, if we can determine that. The result is put into a single archive per APK, so we can easily transfer that to the signing machine via Jenkins alongside the APK.
2020-11-01Make androiddeployqt find libraries and QML plugins without installationv5.76.0-rc1v5.76.0Volker Krause
This matters for libraries in the same repository as the application that also have an AAR that needs to be integrated, as well as QML plugins. For this to work we need to consider the build directory as a search prefix, and produce the exact directory layout there that androiddeployqt expects. For libraries this is then almost transparent for the application build system, the only thing that needs to be taken care of manually is putting the corresponding -android-dependencies.xml file into the right place in the build dir as well. A macro wrapping that might be an option to centralize that logic here as well in the future. For QML plugins this is transparent if you have them set up to work without installation already anyway, otherwise that setup has to be done for this to work. Example: https://invent.kde.org/pim/itinerary/-/merge_requests/28 https://invent.kde.org/frameworks/knotifications/-/merge_requests/12 would presumably also need this (not tested yet).
2020-10-21Include option to use LLVM for users with Qt < 5.14Sharaf Zaman
When NDK r20+ is used along with Qt5.12, APK generation fails because of the layout change in newer NDK. This patch introduces a new variable USE_LLVM, when this is set for older Qt versions, androiddeployqt uses LLVM's tools.
2020-09-16Explicitly sort Android version listsGabriel Souza Franco
Also document --android-platform parameter
2020-09-16Store Android {min,target,compile}Sdk in variablesGabriel Souza Franco
Also pass along these values to androiddeployqt
2020-05-11[android] Allow specifying APK install locationNicolas Fella
Summary: This allows `make create-apk` to directly write the APK to /output instead of the cp-with-prefix step in /opt/helpers/create-apk. It's also useful for manual development builds where one would need to copy it to some output location manually or for CI setups that expect the output in a certain location. If ANDROID_APK_INSTALL_DIR is not set the current behaviour is kept. Reviewers: #frameworks, #android, apol, vkrause Reviewed By: #android, apol Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D29631
2020-04-29android: include the architecture on the apk namev5.70.0-rc1v5.70.0Aleix Pol
Summary: Makes them easier to use afterwards. Test Plan: Tested locally Reviewers: #android, #frameworks, nicolasfella Reviewed By: nicolasfella Subscribers: vkrause, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D29079
2020-03-03Support NDK r20 and Qt 5.14Volker Krause
Summary: This changes from using the toolchain file provided by CMake to using the one provided by the NDK, as even recent CMake can't build successfully with r20. However this is a rather invasive change, the interface and variable names differ. The Qt 5.14 changes are less risky, as most of this is parallel to the support for older versions. Test Plan: Local builds with 5.14/r20, 5.14/r18 work, the Docker SDK isn't tested yet, and there's some remaining issues with 5.13 and older NDKs I don't fully understand yet. The resulting apks with 5.14 install, and work for QQC2 content, but fail to start Kirigami apps. Reviewers: apol Reviewed By: apol Subscribers: flherne, apol, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Maniphest Tasks: T12520 Differential Revision: https://phabricator.kde.org/D26749
2020-01-04[android] Fix apk install targetv5.66.0-rc1v5.66.0Nicolas Fella
Summary: The APK output path changed at some point Test Plan: can do make install-apk-appname again Reviewers: apol Reviewed By: apol Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D26402
2019-04-17Bug fix: find c++ stl using regexv5.58.0-rc1v5.58.0Sharaf Zaman
Summary: Find C++ shared lib path using regex. This change makes finding path independent of the order in which it was added by cmake. Reviewers: apol Reviewed By: apol Subscribers: kde-buildsystem, kde-frameworks-devel Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D20558
2018-11-19Android: improve clang supportAleix Pol
Summary: Infer the toolchain we are using through cmake's detection of ranlib instead of asking the user to fill it. It's only used in androiddeployqt and cmake expects it to be version "clang" for clang builds while androiddeployqt expects it to be "4.9". Reviewers: #build_system, #android, vkrause Reviewed By: #android, vkrause Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D16930
2018-09-24Fix Android builds using cmake 3.12.1Aleix Pol
Summary: Only extract the the stl shared object without the rest of libraries. Test Plan: Built gcompris Reviewers: #frameworks, vkrause Reviewed By: vkrause Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D15685
2018-07-04Android: Make it possible to override a target's APK directoryv5.48.0-rc1v5.48.0Aleix Pol
Summary: Some projects such as marble do some operations with the APK directory before building. This allows us the project to copy the apk directory over to the build directory and do whatever it pleases. Test Plan: Built Marble Reviewers: #frameworks, vkrause Reviewed By: vkrause Subscribers: vkrause, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D13403
2018-05-31Android toolchain: allow to specify extra libs manuallyv5.47.0-rc1v5.47.0Alexey Minnekhanov
Summary: Add new variable ANDROID_EXTRA_LIBS, which can contain list of full paths to libs to include in resulting APK file. This can be used to include plugins that are not directly liked to executable, for example OpenSSL libs for QtNetwork SSL/HTTPS support. Test Plan: Build project with -DANDROID_EXTRA_LIBS="/path/to/lib.so;/path/to/other_lib.so". Build without it. In both cases verify APK contents. Reviewers: apol Reviewed By: apol Subscribers: kde-buildsystem, kde-frameworks-devel Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D13198
2018-05-15Android: fix typoAleix Pol
2018-05-14Android: Don't define qml-import-paths if it's emptyAleix Pol
Otherwise androiddeployqt fails like it's failing now for kirigami https://binary-factory.kde.org/view/Android/job/KirigamiGallery_android/48/console
2018-04-17Android: fix dumb mistakesAleix Pol
Use the variable we just created to look up Qt5. Remove debug warning.
2018-04-17Android: Make sure variable is defined before using itAleix Pol
2018-04-13Make it possible to build several apk out of a projectAleix Pol
Summary: Refactor the apk-generating code into a separate function, in views of eventually even make it a module. It also changes so that if no APK dir is specified, a generic dummy one is used. Useful for proofs of concept. Test Plan: Built kate, got kate and kwrite apks Reviewers: #frameworks, #build_system, vkrause Reviewed By: vkrause Subscribers: vkrause Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D12150