On 09/22/2016 04:29 AM, Ch'Gans wrote: > As highlighted recently on the list, there seems to be a problem with > android profiles when trying to build applications. > > The Qbs Application item infers the "profiles" property. I'm > copy/pasting the documentation here for convenience: > ---- > The profiles for which the product should be built. For each profile > listed here, one instance of the product will be built according to > the properties set in the respective profile. This property is only > relevant for projects that require products being built for different > architectures. Otherwise it can be left at its default value. > ---- > > There are a couple of problems with this: > - Only ARMv5 and ARMv7 are supported by defaults (no x86-32/64, no ARM-64)
I don't know what that is supposed to mean. Who supports what by default? > - This works only if you tell qbs to build using the "android" base > profile, and you have used qbs-setup-android to create your android > profiles (which will be automatically named "android-$arch") Yes, the android NDK support is based in this convention for lack of a better solution at the moment. > Now what is the rational behind all of these? I'm not an Android > expert, but after looking on the net, I have the feeling that it is > related to multi-arch per APK vs multi-APK for an application relying > on native code. And Qbs seems to take the multi-arch per APK approach, > that's why it needs to infer the per-arch profiles based on a list of > supported architectures. > > Shouldn't qbs, at least, allow the user to create an APK for a single > architecture of his/her choice? You do that by setting the profiles property. > Finally, is it really worth all the hassle, for a final result of > supporting only two arm architectures, one of each being outdated? Again, I don't know where you get this from. Check which profiles qbs-setup-android creates to see the number of supported architectures. > As a solution, what about letting the user specify the muli-arch > profiles in a master profile? > For example, one has to "qbs config profiles.MyProfile.baseProfile > MyBaseProfile", what about then: "qbs config > profiles.MyProfile.apkProfiles > MyQtProfileArmv7,MyQtProfileArmv8,MyQtProfileX86" with > MyProfile.apkProfiles defaulting to [MyProfile.baseProfile] Some sort of nested profiles or cross-profile references was also my general idea for improving this. It's just that Android support hasn't been much of a priority. If you are interested in driving this forward, I suggest you create a JIRA issue. There are already several loosely related ones, but nothing concrete for Android, I think. Christian _______________________________________________ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs