{"author":"Viktor Szakats","author_email":"commit@vsz.me","author_time":1737162697,"commit_time":1737408726,"committer":"Viktor Szakats","committer_email":"commit@vsz.me","hash":"12a6de2f660dd692cce93cb65ce6e3ec126bb531","message":"GHA: add iOS jobs with LibreSSL, enable dependencies for Android via vcpkg\n\niOS:\n\n- add jobs with autotools, CMake, CMake Xcode generator.\n  The Xcode generator is >10x slower than Unix Makefiles. Keep it\n  because it's the one recommended by CMake and for having its own\n  quirks we may want to know about.\n- build, cache and use LibreSSL for these jobs.\n  With workaround for an iOS build issue fixed in master.\n- make Xcode generator work by explicitly disabling code signing.\n- make tests and examples build with the Xcode generator by setting\n  `-DMACOSX_BUNDLE_GUI_IDENTIFIER=se.curl`, to avoid\n  \"Bundle identifier is missing\" errors.\n- cmake: disable `CURL_USE_PKGCONFIG` by default for Apple device.\n- cmake: add `stdc++` library for BoringSSL and AWS-LC, with\n  `OPENSSL_USE_STATIC_LIBS=ON` set.\n- cmake: add workaround for Xcode generator issue, where it cannot\n  handle two targets depending on one custom command. A better fix may\n  be dropping `tool_hugehelp.c` and `tool_ca_embed.c` from curltool\n  library. For a future PR.\n\nAndroid:\n\n- add vcpkg to Android jobs, enable dependencies.\n  Assisted-by: Tal Regev via #16045\n- make vcpkg work with autotools.\n- pass `--with-brotli` to autotools to detect the vcpkg-supplied brotli.\n- enable BoringSSL for Android and add a job with it.\n- silence 457 CMake configure warnings about the Android NDK CMake\n  scripts targeting freshly deprecated CMake versions.\n\nThese were much more involved than imagined. Basically nothing works out\nof the box, and when combined, everything becomes a unique edge case.\nautotools builds were a much easier to make work than CMake ones.\n\nAlso:\n\n- GHA/non-native: re-sync names to be shorter and more aligned with\n  other workflows.\n- GHA: add `persist-credentials: false` where missing.\n\nUnresolved issues:\n\n- `OPENSSL_ROOT_DIR` ignored/mis-used when pointing it to LibreSSL.\n  CMake seems to prepend the sysroot to the passed absolute directory.\n  Found no workaround.\n- CMake when combined with Android, both the Google-recommended method\n  and the built-in CMake method fail to provide a way to avoid\n  `pkg-config` packages at system directories. Failed to find a knob\n  that can remove `/usr/include` from the search path. The workaround is\n  to disable zstd. (I enabled it by default in this release, maybe\n  premature?: f2adb3b6d73cad0c28ec8a32f5fa969d0f6378a0 #15431)\n  Disabling `pkg-config` doesn't work because vcpkg dependencies do not\n  link without it.\n- CMake's Xcode generator is slow because each `try_compile()` feature\n  check springs a new CMake + Xcode project taking a long time to run,\n  just to compile single-liner C files. A known issue, with no solution.\n  `-DCMAKE_MACOSX_BUNDLE=OFF` did not help, limiting build types to\n  a single one (e.g. `Debug`) also had no effect.\n   make | Xcode | GHA run\n  :---- | :---- | :--------------------------------------------------------------------\n    16s | 2m57s | https://github.com/curl/curl/actions/runs/12866334102/job/35868712426\n    23s | 4m13s | https://github.com/curl/curl/actions/runs/12868128013/job/35874212461\n    16s | 3m39s | https://github.com/curl/curl/actions/runs/12859073531/job/35849041880\n    14s | 2m23s | https://github.com/curl/curl/actions/runs/12858298423/job/35847201313\n    15s | 2m36s | https://github.com/curl/curl/actions/runs/12858058492/job/35846669761\n    19s | 3m19s | https://github.com/curl/curl/actions/runs/12868919430/job/35876601168\n\nCloses #16043\n","parents":["292d81ca54aa9f32a26fc7ecb53e1cc1859353a5"],"tree_hash":"1ff74f0bd4cab42cf4868226d5b1a77fb211de81"}