Details
-
Bug
-
Resolution: Cannot Reproduce
-
P1: Critical
-
None
-
Qt Creator 4.8.0-rc1
-
None
Description
This happens for Qt 5.12+ in source-builds using the new Android NDK 18b . The new NDK changes the supported compiler from g++ to clang.
Steps to reproduce:
1.) Build and configure a Qt for Android build as follows (outside of creator)
-xplatform android-clang -nomake tests -nomake examples -android-ndk /path/to/android/android-ndk-r18b/ -android-sdk /path/to/java/android-sdk-linux/ -no-warnings-are-errors -developer-build -opensource -confirm-license -android-arch armeabi-v7a -no-dbus -android-ndk-host linux-x86_64
2.) Verify that the build of Qt succeeds as expected using the android-clang make spec.
3.) Start creator and configure the new Qt for Android build as a kit and ensure that NDK 18b is setup properly in the creator config settings.
4.) Load qtlocation.pro, ensure the above build Qt is used as kit.
5.) Go back into the Build settings and observe that the qmake call was changed to
qmake qtlocation.pro -spec android-g++ CONFIG+=qml_debug
The new spec is wrong and overrides a perfectly fine qtlocation build. It even points out that "The qmake arguments have changed. The build in /foo/bar will be overwritten".
QtCreator should honor the android-clang spec as implied by the kit selection or at least not inject any artificial -spec option into the qmake call. This would at least leave it up to qmake to do the right thing.
This does not seem to happen when you load a non-qt module project such as official examples or tests. In fact in those cases it does inject the proper android-clang parameter into the qmake call.