Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
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.
|
|
|
|
Those occur for example in Marble.
|
|
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.
|
|
This should improve the alignment issues currently seen in bullet point
lists that we use frequently in the description text.
|
|
BUG: 424392
|
|
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.
|
|
|
|
Locally unlink() seems to work just fine on non-existent files, but on
binary factory that seems to be different for some reason.
|
|
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.
|
|
Also, check for the HTTP status code, so we don't end up with 404 error
messages in image files here.
|
|
This should fix the Okular build failure on binary factory.
|
|
This broke the builds for apps not having categories in their appstream
files.
|
|
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.
|
|
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).
|
|
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.
|
|
|
|
|
|
Also document --android-platform parameter
|
|
Also pass along these values to androiddeployqt
|
|
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.
|
|
|
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
|
Summary: It's supposed to be uppercase, cmake was warning about it.
Test Plan: Now it builds as well, but cmake doesn't complain.
Reviewers: #frameworks, #android, vkrause
Reviewed By: #android, vkrause
Subscribers: kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D22317
|
|
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
|
|
Summary:
Don't include same dependency twice, one which was found
from `readelf` in `specifydependencies.cmake` and other in
`ANDROID_EXTRA_LIBS`.
Bug fix: find stl was dependent on the order in which libc++
was added, now it is independent.
Test Plan: * add the same dependency in ANDROID_EXTRA_LIBS
Reviewers: apol, vkrause
Reviewed By: apol
Subscribers: kde-buildsystem, kde-frameworks-devel
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D20509
|
|
|
|
Summary:
- NDK r18 does not ship GCC anymore, it's only clang now
- same for STL, there's only libc++ there
- API level 14 is not supported either anymore, the minimum supported by
the current NDK is 16
- The minimum supported API level by KF5 right now is 21 though, so use
that as the default
Reviewers: apol
Reviewed By: apol
Subscribers: apol, kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D19016
|
|
|
|
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
|
|
Summary:
This way the project can generate automatically its own manifest file.
GCompris is using it to set the version.
Test Plan: Built GCompris without a warning saying the apkdir isn't found
Reviewers: #frameworks, #gcompris, jjazeix
Reviewed By: #gcompris, jjazeix
Subscribers: jjazeix, kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D15643
|
|
The variable name was wrong, not much to see here.
|
|
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
|
|
Reviewers: apol, alexeymin
Reviewed By: alexeymin
Subscribers: alexeymin, kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D15084
|
|
Summary: Just default to whichever is installed
Test Plan: Built kalgebra
Reviewers: #frameworks, vkrause
Reviewed By: vkrause
Subscribers: alexeymin, kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D14544
|
|
Summary:
We'd check if the variable's value is defined, which is wrong and prevented us
from properly initialising using these deprecated variables.
It would also ignore the value we're passing to the actually right variable when
using it.
Test Plan: Built kstars which needs -DCMAKE_ANDROID_API=24
Reviewers: #frameworks, vkrause
Reviewed By: vkrause
Subscribers: kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D14187
|
|
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
|
|
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
|
|
|
|
Otherwise androiddeployqt fails like it's failing now for kirigami
https://binary-factory.kde.org/view/Android/job/KirigamiGallery_android/48/console
|
|
Use the variable we just created to look up Qt5.
Remove debug warning.
|
|
|
|
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
|