aboutsummaryrefslogtreecommitdiff
path: root/toolchain
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
2022-03-15generate-fastlane-metadata: Don't fail if source URL can not be foundJonah BrĂ¼chert
I hit this issue while building Kaidan using craft, outside of the KDE Android docker container. Hopefully this is the correct way to fix it.
2022-03-08Android: Set CMAKE_TRY_COMPILE_PLATFORM_VARIABLESAlbert Astals Cid
These are the variables that cmake will pass onto itself when doing a try_compile, we need that because otherwise when trying to find iconv it will issue a try compile, won't pass CMAKE_ANDROID_API so it will default to 21 (instead eg the 28 we had given it) and the try_compile will fail because android libc only has iconv after API 28
2022-03-06Android: autodetect the use of llvmDavid Faure
2022-02-27specifydependencies: fix syntax in debug outputv5.92.0-rc1v5.92.0David Faure
2022-02-11Adapt Android toolchain file and FindGradle to Qt6Volker Krause
- We don't need the Threads target workaround anymore, that breaks the build with Qt6 even. - The Gradle wrapper shipped with Qt is no longer installed as executable, so we need to run this in sh explicitly. - Qt6 uses a different Android Gradle plugin version (not to be confused with the Gradle version), which we need to make available for the configure_file() call on the build.gradle file. With this most Framework modules build against Qt6 here.
2021-10-13[android] Extend NDK workaround to version 22Nicolas Fella
The relevant issue is only fixed in 23
2021-09-27Handle git remotes that aren't called origin in _repository_name()Alex Richardson
I was seeing `error: No such remote 'origin'` in the cmake output. This commit avoids hardcoding `origin` as the upstream URL and instead uses the `git rev-parse @{u}` to get the configured upstream. As a follow-up we may want to check if this should be executed by default, but for now this fixes a warning that I'm seeing with various projects.
2021-09-13Make sphinx happier about syntaxAlbert Astals Cid
And the generated html looks more correct
2021-07-13Fix typos found by codespellChristophe Giboudeaux
GIT_SILENT
2021-07-03Trim whitespaces from description textsVolker Krause
This fixes spurious differences after a roundtrip through Google Play, breaking change detection and thus triggering unnecessary metadata updates.
2021-07-01Number screenshots in the same way the fastlane tool does thisv5.84.0-rc1v5.84.0Volker Krause
This considerably simplifies comparing our data with that retrieved from Google Play for automatically syncing metadata.
2021-06-27[fastlane] Add mapping for serbianNicolas Fella
Qt maps it this way
2021-05-23Make sure that dir path exists before attempting to copy fileBart De Vries
2021-05-23Attempt to find the Play store icon if it's not explicitly setVolker Krause
This relies on the apparently predominant naming pattern for those files, those of our apps not using this often do not seem to have an appropriate file (512x512 png) to begin with. Explicit override is also possible, by the already existing mechanism of putting a file with the right name into the fastlane/ source directory. Having the icon included here will allow it to be automatically synced to the Play store.
2021-05-17Don't pass through list rich text elements, Google Play can't handle thoseVolker Krause
Instead, restore their plain text fallback output that we used to have already prior to enabling rich text support.
2021-05-16Handle text-less tagsVolker Krause
Contrary to the comment those exist (e.g. ul, ol), this just wasn't noticed as due to the script-enforced formatting those always contain some spaces. This resulted in different structures between English and translated description texts. With this change all language variants show the same structure.
2021-05-15Fall back to English for missing translated elementsVolker Krause
We have to handle both entirely missing top-level elements and arbitrarily incomplete sub-elements in the description body. Until now we were just kept those gaps, resulting in missing titles or incomplete descriptions. F-Droid didn't complain about that, but Google Play does. This fixes e.g. Itinerary's metadata for de and ru.
2021-05-07Extend Android language mappings for translated metadataVolker Krause
This is likely still not complete, but with this at least most of Itinerary's metadata translations are accepted during upload to the Google Play store (the remaining ones are rejected for different reasons). F-Droid seems considerably less picky about this, and works with either form.
2021-04-23Modules docs: move rst docs into bracket commentsFriedrich W. H. Kossebau
CMake >= 3.0 supports bracket comments, and the reStructuredText integration code in sphinx/ext/ecm.py already supports extracting the docs from a bracket comment instead. Editing documentation without leading line comment markers is more simple, e,g. when reflowing text over lines. With ECM meanwhile requiring CMake 3.5 now it is possible to switch (and thus follow also the approach used by cmake itself). NO_CHANGELOG
2021-04-07Document the advanced APK packaging optionsVolker Krause
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.
2021-02-01Remove fastlane metadata generation from a given APKVolker Krause
This is no longer needed now that the metadata happens as part of the build process rather than afterwards on the signing system. This allows us to simplify the code here a bit.
2021-01-30Support the new Appstream file extension as wellVolker Krause
2021-01-20Consider Appstream donation URLs for creating F-Droid metadataVolker Krause
Those occur for example in Marble.
2020-12-28Consider local fastlane image assetsVolker Krause
This adds support for image assets not represented in the appstream data, such as the banner image for the F-Droid app, and it allows to override appstream screenshots by local ones. The latter is e.g. used by KTrip which provides Android-specific screenshots that way.
2020-12-24Preserve the rich-text subset supported by F-DroidVolker Krause
This should improve the alignment issues currently seen in bullet point lists that we use frequently in the description text.
2020-12-20bump required cmake version for Android.cmakeJohnny Jazeix
BUG: 424392
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-13Fix errors in python code, found by pylama in a strict CIDavid Faure
2020-12-10Check if file exists before removing the fastlane archiveVolker Krause
Locally unlink() seems to work just fine on non-existent files, but on binary factory that seems to be different for some reason.
2020-12-10Clean image folder and archive file before downloading/generating thoseVolker Krause
This matters when reusing output folders (as binary factory does for example), as we then retain outdated screenshots and just keep adding files to an already existing fastlane archive.
2020-12-08Retain screenshot order from the appstream fileVolker Krause
Also, check for the HTTP status code, so we don't end up with 404 error messages in image files here.
2020-12-05Don't fail if we haven't found any categoriesVolker Krause
This should fix the Okular build failure on binary factory.
2020-12-04Fix category extraction from desktop filesVolker Krause
This broke the builds for apps not having categories in their appstream files.
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-20Fix configuring with pthread on Android 32 bitGabriel Souza Franco
2020-09-16Fix find_library on Android with NDK < 22Gabriel Souza Franco
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-06-22Deal with Qt's CMake code modifying CMAKE_SHARED_LIBRARY_SUFFIXVolker Krause
Qt adds the Android ABI to the suffix there unconditionally, without also adjusting CMAKE_FIND_LIBRARY_SUFFIXES accordingly, breaking find_library() for things built that way. Unfortunately we can't just set this in our toolchain file, as CMAKE_FIND_LIBRARY_SUFFIXES is overwritten by CMake after evaluating the toolchain file. So we need to use the variable_watch hack for this here, thanks to Aleix for the idea. With this, find_library() works for both suffixed and un-suffixed libraries again, such as Poppler built with or without Qt support.
2020-06-14extra-cmake-modules: Convert to SPDX license statementsAndreas Cord-Landwehr
2020-05-19[android] Use newer Qt version in examplev5.71.0-rc3v5.71.0-rc2v5.71.0-rc1v5.71.0Nicolas Fella
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-07-29android: Allow overriding ANDROID_ARCH and ANDROID_ARCH_ABI as envvarsv5.61.0-rc1v5.61.0Aleix Pol