1# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 2# 3# SPDX-License-Identifier: curl 4 5name: macOS 6 7'on': 8 push: 9 branches: 10 - master 11 - '*/ci' 12 paths-ignore: 13 - '**/*.md' 14 - '.circleci/**' 15 - 'appveyor.*' 16 - 'packages/**' 17 - 'plan9/**' 18 - 'projects/**' 19 - 'winbuild/**' 20 pull_request: 21 branches: 22 - master 23 paths-ignore: 24 - '**/*.md' 25 - '.circleci/**' 26 - 'appveyor.*' 27 - 'packages/**' 28 - 'plan9/**' 29 - 'projects/**' 30 - 'winbuild/**' 31 32concurrency: 33 group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} 34 cancel-in-progress: true 35 36permissions: {} 37 38# Deprecated Apple APIs and the macos-version-min value required to avoid 39# deprecation warnings with llvm/clang: 40# 41# - 10.7 Lion (2011) - GSS 42# - 10.8 Mountain Lion (2012) - CFURLCreateDataAndPropertiesFromResource (used by curl Secure Transport code) 43# - 10.9 Maverick (2013) - LDAP 44# - 10.14 Mojave (2018) - Secure Transport 45# 46# For Secure Transport, curl implements features that require a target 47# newer than the 10.8 required by `CFURLCreateDataAndPropertiesFromResource`. 48# In this case `-Wno-deprecated-declarations` still comes handy to pacify 49# deprecation warnings, though the real solution would be to avoid calling 50# that function. 51 52env: 53 LDFLAGS: -w # suppress 'object file was built for newer macOS version than being linked' warnings 54 MAKEFLAGS: -j 4 55 56jobs: 57 macos: 58 name: "${{ matrix.build.generate && 'CM' || 'AM' }} ${{ matrix.compiler }} ${{ matrix.build.name }}" 59 runs-on: 'macos-latest' 60 timeout-minutes: 45 61 env: 62 DEVELOPER_DIR: "/Applications/Xcode${{ matrix.build.xcode && format('_{0}', matrix.build.xcode) || '' }}.app/Contents/Developer" 63 CC: ${{ matrix.compiler }} 64 CFLAGS: '' 65 strategy: 66 fail-fast: false 67 matrix: 68 compiler: [clang, llvm@15, gcc-12] 69 build: 70 # automake 71 - name: '!ssl !debug brotli zstd' 72 compiler: clang 73 install: brotli zstd 74 configure: --without-ssl --with-brotli --with-zstd 75 macos-version-min: '10.9' 76 - name: '!ssl !debug' 77 compiler: gcc-12 78 configure: --without-ssl 79 macos-version-min: '10.9' 80 - name: '!ssl' 81 compiler: clang 82 configure: --enable-debug --without-ssl 83 macos-version-min: '10.9' 84 - name: '!ssl libssh2 AppleIDN' 85 compiler: clang 86 configure: --enable-debug --with-libssh2=$(brew --prefix libssh2) --without-ssl --with-apple-idn 87 macos-version-min: '10.9' 88 - name: 'OpenSSL libssh c-ares' 89 compiler: clang 90 install: libssh 91 configure: --enable-debug --with-libssh --with-openssl=$(brew --prefix openssl) --enable-ares 92 macos-version-min: '10.9' 93 - name: 'OpenSSL libssh' 94 compiler: llvm@15 95 install: libssh 96 configure: --enable-debug --with-libssh --with-openssl=$(brew --prefix openssl) 97 macos-version-min: '10.9' 98 - name: '!ssl c-ares' 99 compiler: clang 100 configure: --enable-debug --enable-ares --without-ssl 101 macos-version-min: '10.9' 102 - name: '!ssl HTTP-only' 103 compiler: clang 104 configure: >- 105 --enable-debug 106 --disable-alt-svc --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap 107 --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp 108 --disable-shared --disable-smb --disable-smtp --disable-telnet --disable-tftp --disable-unix-sockets 109 --without-brotli --without-gssapi --without-libidn2 --without-libpsl --without-librtmp --without-libssh2 110 --without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib --without-zstd 111 112 macos-version-min: '10.15' # Catalina (2019) 113 - name: 'SecureTransport libssh2' 114 compiler: clang 115 configure: --enable-debug --with-secure-transport --with-libssh2=$(brew --prefix libssh2) 116 macos-version-min: '10.8' 117 - name: 'SecureTransport libssh2 10.12' 118 compiler: clang 119 configure: --enable-debug --with-secure-transport --with-libssh2=$(brew --prefix libssh2) 120 macos-version-min: '10.12' # for monotonic timers 121 cflags: '-Wno-deprecated-declarations' 122 - name: 'SecureTransport libssh2' 123 compiler: gcc-12 124 configure: --enable-debug --with-secure-transport --with-libssh2=$(brew --prefix libssh2) 125 macos-version-min: '10.8' 126 - name: 'LibreSSL +examples' 127 compiler: clang 128 install: libressl 129 configure: --enable-debug --with-openssl=$(brew --prefix libressl) 130 macos-version-min: '10.9' 131 - name: 'OpenSSL' 132 compiler: clang 133 configure: --enable-debug --with-openssl=$(brew --prefix openssl) 134 macos-version-min: '10.9' 135 - name: 'OpenSSL event-based' 136 compiler: clang 137 configure: --enable-debug --with-openssl=$(brew --prefix openssl) 138 macos-version-min: '10.9' 139 tflags: --test-event 140 - name: 'OpenSSL libssh2 !ldap 10.15' 141 compiler: clang 142 configure: --enable-debug --disable-ldap --with-openssl=$(brew --prefix openssl) 143 macos-version-min: '10.15' 144 # cmake 145 - name: 'OpenSSL gsasl AppleIDN' 146 install: gsasl 147 generate: -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DCURL_USE_GSASL=ON -DUSE_APPLE_IDN=ON 148 macos-version-min: '10.9' 149 - name: 'OpenSSL +static libssh +examples' 150 install: libssh 151 generate: -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DBUILD_STATIC_LIBS=ON -DCURL_USE_LIBSSH2=OFF -DCURL_USE_LIBSSH=ON 152 macos-version-min: '10.9' 153 - name: 'SecureTransport debug' 154 generate: -DCURL_USE_SECTRANSP=ON -DENABLE_DEBUG=ON 155 macos-version-min: '10.8' 156 - name: 'LibreSSL !ldap heimdal c-ares +examples' 157 install: libressl heimdal 158 generate: -DOPENSSL_ROOT_DIR=$(brew --prefix libressl) -DENABLE_ARES=ON -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=$(brew --prefix heimdal) -DCURL_DISABLE_LDAP=ON 159 macos-version-min: '10.15' 160 - name: 'wolfSSL !ldap brotli zstd' 161 install: brotli wolfssl zstd 162 generate: -DCURL_USE_WOLFSSL=ON -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_DISABLE_LDAP=ON -DUSE_HTTPSRR=ON -DUSE_ECH=ON 163 macos-version-min: '10.15' 164 - name: 'mbedTLS !ldap brotli zstd' 165 install: brotli mbedtls zstd 166 generate: -DCURL_USE_MBEDTLS=ON -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_DISABLE_LDAP=ON 167 macos-version-min: '10.15' 168 - name: 'GnuTLS !ldap krb5' 169 install: gnutls nettle krb5 170 generate: -DCURL_USE_GNUTLS=ON -DCURL_USE_OPENSSL=OFF -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=$(brew --prefix krb5) -DCURL_DISABLE_LDAP=ON 171 macos-version-min: '10.15' 172 - name: 'OpenSSL torture !FTP' 173 generate: -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DENABLE_THREADED_RESOLVER=OFF -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DCURL_BROTLI=ON -DCURL_ZSTD=ON 174 tflags: -t --shallow=25 !FTP 175 macos-version-min: '10.9' 176 torture: true 177 - name: 'OpenSSL torture FTP' 178 generate: -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DENABLE_THREADED_RESOLVER=OFF -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DCURL_BROTLI=ON -DCURL_ZSTD=ON 179 tflags: -t --shallow=20 FTP 180 macos-version-min: '10.9' 181 torture: true 182 exclude: 183 - { compiler: llvm@15, build: { macos-version-min: '10.15' } } 184 - { compiler: llvm@15, build: { torture: true } } 185 - { compiler: gcc-12, build: { torture: true } } 186 # opt out jobs from combinations that have the compiler set manually 187 - { compiler: llvm@15, build: { compiler: 'clang' } } 188 - { compiler: llvm@15, build: { compiler: 'gcc-12' } } 189 - { compiler: gcc-12, build: { compiler: 'clang' } } 190 - { compiler: gcc-12, build: { compiler: 'llvm@15' } } 191 - { compiler: clang, build: { compiler: 'gcc-12' } } 192 - { compiler: clang, build: { compiler: 'llvm@15' } } 193 194 steps: 195 - name: 'brew install' 196 # Run this command with retries because of spurious failures seen 197 # while running the tests, for example 198 # https://github.com/curl/curl/runs/4095721123?check_suite_focus=true 199 run: | 200 echo ${{ matrix.build.generate && 'ninja' || 'automake libtool' }} \ 201 pkgconf libpsl libssh2 nghttp2 stunnel ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile 202 while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done 203 204 - name: 'brew unlink openssl' 205 run: | 206 if test -d $(brew --prefix)/include/openssl; then 207 brew unlink openssl 208 fi 209 210 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 211 212 - name: 'toolchain versions' 213 run: | 214 [[ '${{ matrix.compiler }}' = 'llvm'* ]] && CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang" 215 [[ '${{ matrix.compiler }}' = 'gcc'* ]] && "${CC}" --print-sysroot 216 which "${CC}"; "${CC}" --version || true 217 xcodebuild -version || true 218 xcrun --sdk macosx --show-sdk-path 2>/dev/null || true 219 xcrun --sdk macosx --show-sdk-version || true 220 ls -l /Library/Developer/CommandLineTools/SDKs || true 221 echo '::group::macros predefined'; "${CC}" -dM -E - < /dev/null | sort || true; echo '::endgroup::' 222 echo '::group::brew packages installed'; ls -l "$(brew --prefix)/opt"; echo '::endgroup::' 223 224 - name: 'autoreconf' 225 if: ${{ matrix.build.configure }} 226 run: autoreconf -fi 227 228 - name: 'configure' 229 run: | 230 if [[ '${{ matrix.compiler }}' = 'gcc'* ]]; then 231 sysroot="$("${CC}" --print-sysroot)" # Must match the SDK gcc was built for 232 else 233 sysroot="$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)" 234 fi 235 236 if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then 237 CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang" 238 CC+=" --sysroot=${sysroot}" 239 CC+=" --target=$(uname -m)-apple-darwin" 240 fi 241 242 if [ -n '${{ matrix.build.configure }}' ]; then 243 export CFLAGS 244 if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then 245 options+=" --target=$(uname -m)-apple-darwin" 246 fi 247 if [ '${{ matrix.compiler }}' != 'clang' ]; then 248 options+=" --with-sysroot=${sysroot}" 249 CFLAGS+=" --sysroot=${sysroot}" 250 fi 251 CFLAGS+=' ${{ matrix.build.cflags }}' 252 CFLAGS+=' -mmacosx-version-min=${{ matrix.build.macos-version-min }}' 253 mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \ 254 --disable-dependency-tracking \ 255 --with-libpsl=$(brew --prefix libpsl) \ 256 ${{ matrix.build.configure }} ${options} 257 else 258 cmake -B bld -G Ninja -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \ 259 -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.build.macos-version-min }} \ 260 "-DCMAKE_OSX_SYSROOT=${sysroot}" \ 261 "-DCMAKE_C_COMPILER_TARGET=$(uname -m | sed 's/arm64/aarch64/')-apple-darwin$(uname -r)" \ 262 ${{ matrix.build.generate }} 263 fi 264 265 - name: 'configure log' 266 if: ${{ !cancelled() }} 267 run: cat bld/config.log bld/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true 268 269 - name: 'curl_config.h' 270 run: | 271 echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::' 272 grep -F '#define' bld/lib/curl_config.h | sort || true 273 274 - name: 'build-cert' 275 if: contains(matrix.build.generate, '-DCURL_USE_SECTRANSP=ON') || contains(matrix.build.configure, '--with-secure-transport') 276 run: | 277 if [ -n '${{ matrix.build.configure }}' ]; then 278 make -C bld/tests/certs clean-certs 279 make -C bld/tests/certs build-certs -j1 280 else 281 cmake --build bld --target clean-certs 282 cmake --build bld --target build-certs --parallel 1 283 fi 284 285 - name: 'build' 286 run: | 287 if [ -n '${{ matrix.build.configure }}' ]; then 288 make -C bld V=1 289 else 290 cmake --build bld --verbose 291 fi 292 293 - name: 'curl version' 294 run: bld/src/curl --disable --version 295 296 - name: 'build tests' 297 run: | 298 if [ -n '${{ matrix.build.configure }}' ]; then 299 make -C bld V=1 -C tests 300 else 301 cmake --build bld --target testdeps 302 fi 303 304 - name: 'install test prereqs' 305 run: | 306 python3 -m venv $HOME/venv 307 source $HOME/venv/bin/activate 308 python3 -m pip install -r tests/requirements.txt 309 310 - name: 'run tests' 311 timeout-minutes: ${{ matrix.build.torture && 20 || 10 }} 312 run: | 313 export TFLAGS='-j20 ${{ matrix.build.tflags }}' 314 if [ -z '${{ matrix.build.torture }}' ]; then 315 TFLAGS+=' ~2037 ~2041' # flaky 316 if [[ '${{ matrix.compiler }}' = 'gcc'* ]]; then 317 TFLAGS+=' ~RTSP' # 567 568 569 570 571 572 577 689 3100 318 TFLAGS+=' ~1156 ~1539' # HTTP Content-Range, Content-Length 319 if [[ -n '${{ matrix.build.configure }}' || \ 320 '${{ matrix.build.generate }}' = *'-DCURL_USE_SECTRANSP=ON'* ]]; then 321 TFLAGS+=' ~2100' # 2100:'HTTP GET using DoH' https://github.com/curl/curl/actions/runs/9942146678/job/27462937524#step:15:5059 322 fi 323 if [[ '${{ matrix.build.configure }}' = *'--with-secure-transport'* || \ 324 '${{ matrix.build.generate }}' = *'-DCURL_USE_SECTRANSP=ON'* ]]; then 325 TFLAGS+=' ~HTTP/2' # 2400 2401 2402 2403 2404 2406, Secure Transport + nghttp2 326 else 327 TFLAGS+=' ~2402 ~2404' # non-Secure Transport + nghttp2 328 fi 329 fi 330 if [[ '${{ matrix.build.configure }}' = *'--with-secure-transport'* || \ 331 '${{ matrix.build.generate }}' = *'-DCURL_USE_SECTRANSP=ON'* ]]; then 332 TFLAGS+=' ~313' # Secure Transport does not support crl file 333 TFLAGS+=' ~1631 ~1632' # Secure Transport is not able to shutdown ftp over https gracefully yet 334 fi 335 fi 336 source $HOME/venv/bin/activate 337 rm -f $HOME/.curlrc 338 if [ -n '${{ matrix.build.configure }}' ]; then 339 make -C bld V=1 ${{ matrix.build.torture && 'test-torture' || 'test-ci' }} 340 else 341 cmake --build bld --target ${{ matrix.build.torture && 'test-torture' || 'test-ci' }} 342 fi 343 344 - name: 'build examples' 345 if: ${{ contains(matrix.build.name, '+examples') }} 346 run: | 347 if [ -n '${{ matrix.build.configure }}' ]; then 348 make -C bld examples V=1 349 else 350 cmake --build bld --target curl-examples --verbose 351 fi 352 353 combinations: # Test buildability with host OS, Xcode / SDK, compiler, target-OS, Secure Transport/not, built tool, combinations 354 if: true # Set to `true` to enable this test matrix. It runs quickly. 355 name: "${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.compiler }} ${{ matrix.image }} ${{ matrix.xcode }} ${{ matrix.config }}" 356 runs-on: ${{ matrix.image }} 357 timeout-minutes: 10 358 env: 359 DEVELOPER_DIR: "/Applications/Xcode${{ matrix.xcode && format('_{0}', matrix.xcode) || '' }}.app/Contents/Developer" 360 CC: ${{ matrix.compiler }} 361 strategy: 362 fail-fast: false 363 matrix: 364 config: [SecureTransport] # also: OpenSSL 365 compiler: [gcc-12, gcc-13, gcc-14, llvm@15, llvm@18, clang] 366 # Xcode support matrix as of 2024-07, with default macOS SDK versions and OS names, years: 367 # * = default Xcode on the runner. 368 # macos-13: 14.1, 14.2, 14.3.1, 15.0.1, 15.1,*15.2 369 # macos-14: 15.0.1, 15.1, 15.2, 15.3,*15.4 370 # macos-15: *16.0, 16.1 371 # macOSSDK: 13.0, 13.1, 13.3, 14.0, 14.2, 14.2, 14.4, 14.5, 15.0, 15.1 372 # Ventura (2022) Sonoma (2023) Sequoia (2024) 373 # https://github.com/actions/runner-images/tree/main/images/macos 374 # https://en.wikipedia.org/wiki/MacOS_version_history 375 image: [macos-13, macos-14, macos-15] 376 # Can skip these to reduce jobs: 377 # 15.1 has the same default macOS SDK as 15.2 and identical test result. 378 # 14.1, 15.4 not revealing new fallouts. 379 #xcode: ['14.1', '14.2', '14.3.1', '15.0.1', '15.1', '15.2', '15.3', '15.4', '16.0', '16.1'] # all Xcode 380 #xcode: ['14.1', '14.2', '14.3.1', '15.0.1' , '15.2', '15.3', '15.4', '16.0', '16.1'] # all SDK 381 #xcode: [ '14.2', '14.3.1', '15.0.1' , '15.2', '15.3' , '16.0' ] # coverage 382 xcode: [''] # default Xcodes 383 macos-version-min: ['10.8'] 384 build: [autotools, cmake] 385 exclude: 386 # Combinations uncovered by runner images: 387 - { image: macos-13, xcode: '15.3' } 388 - { image: macos-13, xcode: '15.4' } 389 - { image: macos-13, xcode: '16.0' } 390 - { image: macos-13, xcode: '16.1' } 391 - { image: macos-14, xcode: '14.1' } 392 - { image: macos-14, xcode: '14.2' } 393 - { image: macos-14, xcode: '14.3.1' } 394 - { image: macos-14, xcode: '16.0' } 395 - { image: macos-14, xcode: '16.1' } 396 - { image: macos-15, xcode: '14.1' } 397 - { image: macos-15, xcode: '14.2' } 398 - { image: macos-15, xcode: '14.3.1' } 399 - { image: macos-15, xcode: '15.0.1' } 400 - { image: macos-15, xcode: '15.1' } 401 - { image: macos-15, xcode: '15.2' } 402 - { image: macos-15, xcode: '15.3' } 403 - { image: macos-15, xcode: '15.4' } 404 - { image: macos-13, compiler: 'llvm@18' } 405 - { image: macos-14, compiler: 'llvm@18' } 406 - { image: macos-15, compiler: 'llvm@15' } 407 # Reduce build combinations, by dropping less interesting ones 408 - { compiler: gcc-12, config: SecureTransport } 409 - { compiler: gcc-13, build: cmake } 410 - { compiler: gcc-14, build: autotools } 411 steps: 412 - name: 'install autotools' 413 if: ${{ matrix.build == 'autotools' }} 414 run: | 415 echo automake libtool | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile 416 while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done 417 418 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 419 420 - name: 'toolchain versions' 421 run: | 422 [[ '${{ matrix.compiler }}' = 'llvm'* ]] && CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang" 423 [[ '${{ matrix.compiler }}' = 'gcc'* ]] && "${CC}" --print-sysroot 424 which "${CC}"; "${CC}" --version || true 425 xcodebuild -version || true 426 xcrun --sdk macosx --show-sdk-path 2>/dev/null || true 427 xcrun --sdk macosx --show-sdk-version || true 428 ls -l /Library/Developer/CommandLineTools/SDKs || true 429 echo '::group::macros predefined'; "${CC}" -dM -E - < /dev/null | sort || true; echo '::endgroup::' 430 echo '::group::brew packages preinstalled'; ls -l "$(brew --prefix)/opt"; echo '::endgroup::' 431 432 - name: 'autoreconf' 433 if: ${{ matrix.build == 'autotools' }} 434 run: autoreconf -fi 435 436 - name: 'configure / ${{ matrix.build }}' 437 run: | 438 if [[ '${{ matrix.compiler }}' = 'gcc'* ]]; then 439 sysroot="$("${CC}" --print-sysroot)" # Must match the SDK gcc was built for 440 else 441 sysroot="$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)" 442 fi 443 444 if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then 445 CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang" 446 CC+=" --sysroot=${sysroot}" 447 CC+=" --target=$(uname -m)-apple-darwin" 448 fi 449 450 if [ '${{ matrix.build }}' = 'autotools' ]; then 451 export CFLAGS 452 if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then 453 options+=" --target=$(uname -m)-apple-darwin" 454 fi 455 if [ '${{ matrix.compiler }}' != 'clang' ]; then 456 options+=" --with-sysroot=${sysroot}" 457 CFLAGS+=" --sysroot=${sysroot}" 458 fi 459 [ '${{ matrix.config }}' = 'OpenSSL' ] && options+=" --with-openssl=$(brew --prefix openssl)" 460 [ '${{ matrix.config }}' = 'SecureTransport' ] && options+=' --with-secure-transport' 461 CFLAGS+=' -mmacosx-version-min=${{ matrix.macos-version-min }}' 462 # would pick up nghttp2, libidn2, but libssh2 is disabled by default 463 mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \ 464 --disable-dependency-tracking \ 465 --disable-docs --disable-manual \ 466 --without-nghttp2 --without-libidn2 \ 467 --without-libpsl \ 468 ${options} 469 else 470 [ '${{ matrix.config }}' = 'OpenSSL' ] && options+=' -DCURL_USE_OPENSSL=ON' 471 [ '${{ matrix.config }}' = 'SecureTransport' ] && options+=' -DCURL_USE_SECTRANSP=ON' 472 # would pick up nghttp2, libidn2, and libssh2 473 cmake -B bld -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \ 474 -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.macos-version-min }} \ 475 "-DCMAKE_OSX_SYSROOT=${sysroot}" \ 476 "-DCMAKE_C_COMPILER_TARGET=$(uname -m | sed 's/arm64/aarch64/')-apple-darwin$(uname -r)" \ 477 "-DCMAKE_IGNORE_PREFIX_PATH=$(brew --prefix)" \ 478 -DBUILD_LIBCURL_DOCS=OFF -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF \ 479 -DUSE_NGHTTP2=OFF -DUSE_LIBIDN2=OFF \ 480 -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF \ 481 ${options} 482 fi 483 484 - name: 'configure log' 485 if: ${{ !cancelled() }} 486 run: cat bld/config.log bld/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true 487 488 - name: 'curl_config.h' 489 run: | 490 echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::' 491 grep -F '#define' bld/lib/curl_config.h | sort || true 492 493 - name: 'build / ${{ matrix.build }}' 494 run: make -C bld V=1 VERBOSE=1 495 496 - name: 'curl version' 497 run: bld/src/curl --disable --version 498