Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[qt] Enable android #42080

Draft
wants to merge 17 commits into
base: master
Choose a base branch
from
Draft

[qt] Enable android #42080

wants to merge 17 commits into from

Conversation

dg0yt
Copy link
Contributor

@dg0yt dg0yt commented Nov 9, 2024

@dg0yt dg0yt marked this pull request as draft November 9, 2024 21:46
@dg0yt
Copy link
Contributor Author

dg0yt commented Nov 10, 2024

@m-kuhn Elapsed time to handle qtbase:x64-android: 4.2 min

@dg0yt

This comment was marked as outdated.

@dg0yt dg0yt force-pushed the qtbase-android branch 4 times, most recently from c1181b6 to 4a69582 Compare November 10, 2024 12:04
@dg0yt
Copy link
Contributor Author

dg0yt commented Nov 10, 2024

qtbase 6.7 silently overrides toolchain API level 21 with actual API level 23.
Some downstream errors are related to API level 21 again, e.g. kdsoap.

qtbase also selects ANDROID_STL=c++_shared despite VCPKG_CRT_LINKAGE=static.
Eventually leading to confusion downstream, and probably also with dependencies.

@JonLiu1993 JonLiu1993 added the category:infrastructure Pertaining to the CI/Testing infrastrucutre label Nov 11, 2024
Comment on lines 345 to 357
if(VCPKG_TARGET_IS_ANDROID)
# Qt requires libc++_shared, cf. <qtbase>/cmake/QtPlatformAndroid.cmake
# and https://developer.android.com/ndk/guides/cpp-support#sr
vcpkg_check_linkage(ONLY_DYNAMIC_CRT)
endif()
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modeling what is hard-coded in Qt.
Excludes it from vcpkg CI with its current Android configuration.

@dg0yt dg0yt changed the title Android CI with JDK and SDK Android CI with JDK, SDK, API level 28, dynamic CRT linkage Nov 14, 2024
@BillyONeal
Copy link
Member

FYI, #42165 changes the Docker base image for Android to 24.04 "Noble".

@dg0yt
Copy link
Contributor Author

dg0yt commented Nov 15, 2024

FYI, #42165 changes the Docker base image for Android to 24.04 "Noble".

Fine, but there is not much impact on Android.

Can you add ruby now, as in the linux image? Some ports do vcpkg_find_acquire_program(RUBY).

(We might also use openjdk from the system packages.)

@dg0yt
Copy link
Contributor Author

dg0yt commented Nov 15, 2024

qtbase and gdal passing now 🎉

@dg0yt
Copy link
Contributor Author

dg0yt commented Nov 15, 2024

  • qtwayland:x64-linux is needed as a dependency (default-features woes), but fails due to the docker image lacking a number dev packages from the distro.
  • sdformat ports need ruby distro package.
  • qmake-based ports fail due to qmake CC/CXX not being absolute path. And possibly additional qmake var/flags issues (sysroot)
  • msquic stumbles over the vendored openssl fork which inherits openssl's toolchain injection barriers.
  • boost found a new excluded dedendency. Dynamic CRT linkage enables new things...

I suggest to continue with moving vcpkg android CI to this configuration. Probably using new triplets arm64-android-28 etc.

@dg0yt dg0yt force-pushed the qtbase-android branch 2 times, most recently from bb50a03 to 256a039 Compare November 19, 2024 07:25
@BillyONeal BillyONeal self-assigned this Dec 17, 2024
@BillyONeal BillyONeal added the depends:vm-update PR contains changes to the VM provisioning scripts label Dec 17, 2024
@BillyONeal
Copy link
Member

Tagging with vm-update so I remember to mint you a new Docker image with the changes here after #42749

@BillyONeal
Copy link
Member

BillyONeal commented Jan 14, 2025

Tagging with vm-update so I remember to mint you a new Docker image with the changes here after #42749

Oops, I forgot anyway. I blame getting COVID that week :( . Doing patch tuesday stuff for this month now and will look at minting one of these for you this week.

@dg0yt
Copy link
Contributor Author

dg0yt commented Jan 14, 2025

No problem, I probably need a moment to sort the commits. Xmas wasn't enough time for that.

What also needs to be discussed:

  • Can we move to a more modern deployment target aka API level? If yes, which triplet names?
  • Can we move to dynamic CRT linkage?

Cf. https://github.com/microsoft/vcpkg/pull/42080/files#r1836012959

BillyONeal added a commit to BillyONeal/vcpkg that referenced this pull request Feb 19, 2025
@BillyONeal BillyONeal removed the depends:vm-update PR contains changes to the VM provisioning scripts label Mar 13, 2025
@BillyONeal
Copy link
Member

I believe the vm-update parts have landed last month

@dg0yt
Copy link
Contributor Author

dg0yt commented Mar 21, 2025

/android-sdk/platforms:
total 12
drwxr-xr-x 3 root root 4096 Mar 13 00:38 .
drwxr-xr-x 6 root root 4096 Mar 13 00:38 ..
drwxrwx--- 6 root root 4096 Feb  9  2024 android-34
ls: cannot open directory '/android-sdk/platforms/android-34': Permission denied

Ouch.

@dg0yt dg0yt changed the title Android CI with JDK, SDK, API level 28, dynamic CRT linkage [qt] Enable android Mar 23, 2025
Comment on lines +1164 to +1165
qtbase:arm64-osx=pass
qtbase:x64-osx=pass
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be obsolete with #44555.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:infrastructure Pertaining to the CI/Testing infrastrucutre
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants