[Qbs] setup-android, no --system?
Christian Gagneraud
chgans at gmail.com
Fri May 15 16:12:25 CEST 2020
On Sat, 16 May 2020 at 01:23, Christian Gagneraud <chgans at gmail.com> wrote:
> As a side note, i don't install Android the same way. I use what i
> believe is the new approach: install commandline-tools first, and run
> sdk manager with a package requirement file, here is mine right now:
> build-tools;28.0.3
> ndk;21.0.6113669
> patcher;v4
> platform-tools
> platforms;android-28
Not 100% sure if i'm on the right track, but currently my product sets:
Android.sdk.platform: "android-28"
Android.sdk.buildToolsVersion: "28.0.3"
Android.ndk.platform: "android-21" // not sure that's right
Because these are the official build requirements (we own the AOSP)
I think this is wrong, the project/product shouldn't dictate that, b/c
the build env provides it.
Similarly, with my upcoming keystore patch, the product sets:
Android.sdk.keyStorePath: project.sourceDirectory +
"/build-tools/navico-release.jks"
Android.sdk.keyStorePassword: "xxx"
Android.sdk.keyAlias: "xxx"
Android.sdk.keyPassword: "xxx"
I don't like this either, so either the container comes with "magic"
signing power, or the android package git repo is setup with a proper
submodule keystore provider, we have a keystore.properties file that
fully define the hosted keystore, so this is a possible solution:
Android.sdk.keystoreProperties: "path/to/keystore/properties/file"
With both of the above solved transparently, the product just need to define:
Android.sdk.packageName
Android.sdk.versionName
Android.sdk.versionCode
Android.sdk.apkBaseName
Android.sdk.manifestFile
Which sounds just about right to me.
Ultimately, signing, ABI, SDK, NDK, .... selection is driven by the
container name/version that is pulled in the project's CI pipeline,
which is something the developer controls.
Chris
<troll>
We use Jenkins, you use Travis, i prefer Gitlab...
</troll>
More information about the Qbs
mailing list