Details
-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
Description
Why?
The current logic with qt.path, qt.abiPath and qt.extraCMakeArguments can lead into to situations where the build outcome can be surprising for the user. For example, setting qt.abiPath to x86 and QT_ANDROID_ABIS to x86_64;arm64-v8a will result in a build with all three ABIs. Also, not setting qt.abiPath and setting QT_ANDROID_ABIS will result in a random ABI (well, system specific random) and the ABIs determined in QT_ANDROID_ABIS. This could be one more than the user wanted.
What?
In the next paragraph, "ABI related arguments" refers to QT_ANDROID_ABIS and QT_ANDROID_BUILD_ALL_ABIS (are there others?)
Change to logic to be like this:
- IF qt.abiPath is defined
- Build a single ABI build with qt.abiPath
- Use qt-cmake from qt.abiPath
- Log warning if ABI related arguments are defined in qt.extraCMakeArguments
- Ignore ABI related arguments in qt.extraCMakeArguments
- Build a single ABI build with qt.abiPath
- ELSE IF QT_ANDROID_BUILD_ALL_ABIS=ON is defined in qt.extraCMakeArguments
- Build an "all ABIs" build
- Use qt-cmake from a random ABI directory
- Build an "all ABIs" build
- ELSE IF QT_ANDROID_ABIS is defined in qt.extraCMakeArguments
- Build a multi ABI build with defined ABIs
- Use qt-cmake from one of these ABI directories
- Build a multi ABI build with defined ABIs
- ELSE IF QT_ANDROID_BUILD_ALL_ABIS=OFF is defined in qt.extraCMakeArguments
- This would just be a single random ABI, which the use certaintly doesn't want
- Log error and exit
- ELSE
- Build an "all ABIs" build
- Use qt-cmake from a random ABI directory
- Add QT_ANDROID_BUILD_ALL_ABIS to configure command
- Build an "all ABIs" build
Attachments
Issue Links
Gerrit Reviews
For Gerrit Dashboard: QTTA-407 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
660140,1 | Convert extraCMakeArguments to ArrayList | dev | qt-labs/qtgradleplugin | Status: NEW | +1 | 0 |
660141,6 | Improve ABI selection logic | dev | qt-labs/qtgradleplugin | Status: NEW | 0 | 0 |