Skip to content

[qt] Enable android#42080

Merged
vicroms merged 13 commits intomicrosoft:masterfrom
dg0yt:qtbase-android
May 22, 2025
Merged

[qt] Enable android#42080
vicroms merged 13 commits intomicrosoft:masterfrom
dg0yt:qtbase-android

Conversation

@dg0yt
Copy link
Contributor

@dg0yt dg0yt commented Nov 9, 2024

Reprise from #35845.

Dependencies:

Some feature test warnings which are not specific for Android are left for other PRs.

@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
@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

@dg0yt dg0yt force-pushed the qtbase-android branch from 0a0d461 to fbe61ca Compare May 18, 2025 12:01
@dg0yt dg0yt marked this pull request as ready for review May 19, 2025 07:05
Comment on lines -124 to +129
"glib" CMAKE_REQUIRE_FIND_PACKAGE_GLIB2
#"glib" CMAKE_REQUIRE_FIND_PACKAGE_GLIB2
Copy link
Contributor Author

@dg0yt dg0yt May 19, 2025

Choose a reason for hiding this comment

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

Multiple attempts, success on second one.

(Drive-by fix, based on feature-tests. Complemented by acquiring PKGCONFIG.)

INPUT_xcb
INPUT_xkbcommon
)
set(Z_VCPKG_CMAKE_GENERATOR "${Z_VCPKG_CMAKE_GENERATOR}" PARENT_SCOPE)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Z_VCPKG_CMAKE_GENERATOR is a cache variable owned by vcpkg-cmake.

@dg0yt dg0yt marked this pull request as draft May 19, 2025 18:19
@dg0yt dg0yt marked this pull request as ready for review May 19, 2025 20:14
@dg0yt
Copy link
Contributor Author

dg0yt commented May 20, 2025

@JonLiu1993 @LilyWangLL please review.

@LilyWangLL LilyWangLL added category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. and removed category:infrastructure Pertaining to the CI/Testing infrastrucutre labels May 21, 2025
@vicroms vicroms merged commit 294f766 into microsoft:master May 22, 2025
18 checks passed
@dg0yt dg0yt deleted the qtbase-android branch May 22, 2025 11:12
@m-kuhn
Copy link
Contributor

m-kuhn commented May 22, 2025

🙏 thanks @dg0yt !

@dg0yt
Copy link
Contributor Author

dg0yt commented May 22, 2025

Look, it was a simple PR!
(No, really, look where we started, #35845. Different NDK, static CRT linkage, whatever...)

@m-kuhn
Copy link
Contributor

m-kuhn commented May 24, 2025

Thanks @BillyONeal and team too for improving the base!

@adriweb
Copy link

adriweb commented Jun 2, 2025

I'm not completely sure but the new vcpkg_replace_string on qmake may have broken some mac-arm64 build (see #45793) in some cases. At least this is the only recent change I see around this error, interestingly enough.

Edit: okay this patch is fine and actually revealed an issue on my side where VCPKG_HOST_TRIPLET gets automatically set to arm64-osx while I'm really targetting arm64-osx-release and the difference makes it think it's cross-compiling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants