]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
GHA/configure-vs-cmake: add macOS build, fix issues
authorViktor Szakats <commit@vsz.me>
Wed, 14 Aug 2024 15:30:47 +0000 (17:30 +0200)
committerViktor Szakats <commit@vsz.me>
Thu, 15 Aug 2024 07:29:07 +0000 (09:29 +0200)
- sync cmake macOS `OS` value manually with the autotools one.
- stop exporting/subst-ing `HAVE_OPENSSL_QUIC` from autotools.
  The variable was only used internally.
- exclude a dependency detection symbol.
- allow to run when the workflow itself was updated.
- simplify cmake command.
- fix indentation.

Closes #14546

.github/scripts/cmp-config.pl
.github/workflows/configure-vs-cmake.yml
configure.ac
m4/curl-openssl.m4

index b50d769597e1e7b2210a6c10e55cf1861b42df13..c72b5dffefc14e25cb10a496fe49b35057aca386 100755 (executable)
@@ -51,6 +51,7 @@ my %remove = (
     '#define HAVE_LIBSSH2 1' => 1,
     '#define HAVE_LIBSSL 1' => 1,
     '#define HAVE_LIBZSTD 1' => 1,
+    '#define HAVE_NGHTTP2_NGHTTP2_H 1' => 1,
     '#define HAVE_OPENSSL3 1' => 1,
     '#define HAVE_OPENSSL_CRYPTO_H 1' => 1,
     '#define HAVE_OPENSSL_ERR_H 1' => 1,
index 4d8722bb0a2c75bdcdccd3dcd67e9a4db3d5add0..44398e3554a7dccff641e4bc25ff9312ab5c7391 100644 (file)
@@ -13,6 +13,7 @@ on:
       - '**/CMakeLists.txt'
       - 'lib/curl_config.h.cmake'
       - '.github/scripts/cmp-config.pl'
+      - '.github/workflows/configure-vs-cmake.yml'
 
   pull_request:
     branches:
@@ -23,23 +24,47 @@ on:
       - '**/CMakeLists.txt'
       - 'lib/curl_config.h.cmake'
       - '.github/scripts/cmp-config.pl'
+      - '.github/workflows/configure-vs-cmake.yml'
 
 permissions: {}
 
 jobs:
-  check:
+  check-linux:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
 
       - name: run configure --with-openssl
         run: |
-           autoreconf -fi
-           ./configure --with-openssl --without-libpsl
+          autoreconf -fi
+          ./configure --with-openssl --without-libpsl
 
       - name: run cmake
         run: |
-           mkdir build && cd build && cmake ..
+          cmake -B build
+
+      - name: compare generated curl_config.h files
+        run: ./.github/scripts/cmp-config.pl lib/curl_config.h build/lib/curl_config.h
+
+  check-macos:
+    runs-on: macos-latest
+    steps:
+      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
+
+      - name: install packages
+        run: |
+          while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew install libtool autoconf automake && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done
+
+      - name: run configure --with-openssl
+        run: |
+          autoreconf -fi
+          ./configure --with-openssl --without-libpsl
+
+      - name: run cmake
+        run: |
+          cmake -B build \
+            "-DCMAKE_C_COMPILER_TARGET=$(uname -m | sed 's/arm64/aarch64/')-apple-darwin$(uname -r)" \
+            -DCURL_USE_LIBSSH2=OFF
 
       - name: compare generated curl_config.h files
         run: ./.github/scripts/cmp-config.pl lib/curl_config.h build/lib/curl_config.h
index 9e1ecb7daabf636e3831fd8f138c5ea0c4d2d2ce..1c6aefcf2dd86ea3c249069f5f11dc9d61fce8c8 100644 (file)
@@ -3262,7 +3262,7 @@ if test "x$want_openssl_quic" = "xyes"; then
   if test "$NGTCP2_ENABLED" = 1; then
     AC_MSG_ERROR([--with-openssl-quic and --with-ngtcp2 are mutually exclusive])
   fi
-  if test "$HAVE_OPENSSL_QUIC" != 1; then
+  if test "$have_openssl_quic" != 1; then
     AC_MSG_ERROR([--with-openssl-quic requires quic support and OpenSSL >= 3.3.0])
   fi
   AC_DEFINE(USE_OPENSSL_QUIC, 1, [if openssl QUIC is in use])
index a0c292d72ba7cfd7aecc09175ec3b0d462c11e77..5b8f8ddf4b9115ade671c94ea580b64e883d5417 100644 (file)
@@ -441,8 +441,7 @@ if test "$OPENSSL_ENABLED" = "1"; then
     ]])
   ],[
     AC_MSG_RESULT([yes])
-    AC_DEFINE(HAVE_OPENSSL_QUIC, 1, [if you have the functions OSSL_QUIC_client_method])
-    AC_SUBST(HAVE_OPENSSL_QUIC, [1])
+    have_openssl_quic=1
   ],[
     AC_MSG_RESULT([no])
   ])