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

android: add CI jobs, buildinfo, cmake docs, disable CURL_USE_PKGCONFIG by default #16014

Closed
wants to merge 11 commits into from

Conversation

vszakats
Copy link
Member

@vszakats vszakats commented Jan 15, 2025

@vszakats vszakats added build CI Continuous Integration labels Jan 15, 2025
@@ -224,6 +224,80 @@ jobs:
time gmake -j3 examples
echo '::endgroup::'
android:
name: "Android ${{ matrix.platform }} (${{ matrix.build == 'cmake' && 'CM' || 'AM' }}, arm64)"
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we use vcpkg as well on android? we can bring easily 3rd libs.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, we can try that. I can't see other options besides building things manually.

What about BoringSSL + libpsl?

Copy link
Contributor

@talregev talregev Jan 17, 2025

Choose a reason for hiding this comment

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

I think it possible to do all the libs that we do on windows msvc with vcpkg, do it also on android with vcpkg.
Do you want me to create a similar ci that compile curl in android with vcpkg?
I can start with cmake only, and then you can extended it to autoconf.

Copy link
Member Author

@vszakats vszakats Jan 17, 2025

Choose a reason for hiding this comment

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

I don't think we need all of those as in Windows. Here we can't run tests, just testing builds and those are quite similar to Linux. We also want to keep CI turnaround fast.

I suggest laying down the framework for it and do a single, useful combination, as suggested above. We can take it from there if there may be more deps that make sense for many Android uses.

Possibly those deps can be interesting, that do not work or missing on Windows, and which we don't have coverage in GHA/linux. (BoringSSL e.g)

@vszakats vszakats changed the title GHA: add Android builds, buildinfo, disable CURL_USE_PKGCONFIG by default android: add CI jobs, buildinfo, cmake docs, disable CURL_USE_PKGCONFIG by default Jan 16, 2025
@vszakats vszakats force-pushed the ci-android branch 3 times, most recently from d49c806 to ae96276 Compare January 16, 2025 12:27
platform defaults to 21 if not set (cmake)
NDK toolchain builds:

```
  -DANDROID_NDK=. \
  -DANDROID_ABI=arm64-v8a \
  -DANDROID_PLATFORM=android-21 \
  -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake"
```

results in `CMakeLists.txt`:

ANDROID_NATIVE_API_LEVEL  21
ANDROID_PLATFORM_LEVEL    21
CMAKE_SYSTEM_VERSION      1

built-in builds:

```
  -DCMAKE_SYSTEM_NAME=Android \
  -DCMAKE_SYSTEM_VERSION=21 \
  -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
  -DCMAKE_ANDROID_NDK="${ANDROID_NDK_HOME}"
```

results in `CMakeLists.txt`:

ANDROID_NATIVE_API_LEVEL  (undefined/empty)
ANDROID_PLATFORM_LEVEL    (undefined/empty)
CMAKE_SYSTEM_VERSION      21
If supplied via `--host=aarch64-linux-android<level>`
@vszakats vszakats closed this in 56a74fa Jan 16, 2025
@vszakats vszakats deleted the ci-android branch January 16, 2025 23:45
vszakats added a commit that referenced this pull request Jan 17, 2025
- limit UWP detection to native Windows.
- add missing double-quotes to variable.
- drop interlock and sync order in buildinfo flags.

Follow-up to 56a74fa #16014
Follow-up to f7bb6c1 #16020

Closes #16027
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build CI Continuous Integration
Development

Successfully merging this pull request may close these issues.

2 participants