build-mac.yml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. - name: Install dependencies
  2. env:
  3. # Build from source for compatibility with macOS 10.13
  4. ZLIB_VERSION: 1.3.1
  5. MBEDTLS_VERSION: 3.6.4
  6. PCRE2_VERSION: 10.45
  7. CMAKE_BUILD_TYPE: Release
  8. CMAKE_GENERATOR: Ninja
  9. run: |
  10. set -ex
  11. brew update
  12. brew bundle --file=tests/Brewfile --no-upgrade
  13. curl -L https://github.com/madler/zlib/releases/download/v$ZLIB_VERSION/zlib-$ZLIB_VERSION.tar.gz | tar xz
  14. cd zlib-$ZLIB_VERSION
  15. cmake -B build -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }}
  16. cmake --build build
  17. sudo cmake --install build
  18. cd ..
  19. curl -L https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-$MBEDTLS_VERSION/mbedtls-$MBEDTLS_VERSION.tar.bz2 | tar xz
  20. cd mbedtls-$MBEDTLS_VERSION
  21. cmake -B build -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} \
  22. -DENABLE_TESTING=OFF
  23. cmake --build build
  24. sudo cmake --install build
  25. cd ..
  26. curl -L https://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2_VERSION/pcre2-$PCRE2_VERSION.tar.gz | tar xz
  27. cd pcre2-$PCRE2_VERSION
  28. cmake -B build -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} \
  29. -DPCRE2_SUPPORT_JIT=ON \
  30. -DPCRE2_BUILD_TESTS=OFF \
  31. -DPCRE2_BUILD_PCRE2GREP=OFF
  32. cmake --build build
  33. sudo cmake --install build
  34. cd ..
  35. - name: Install Opam
  36. run: |
  37. curl -sSL https://github.com/ocaml/opam/releases/download/2.3.0/opam-2.3.0-${{ matrix.arch }}-macos -o $RUNNER_TEMP/opam
  38. sudo install $RUNNER_TEMP/opam /usr/local/bin/opam
  39. - name: Install OCaml libraries
  40. if: steps.cache-opam.outputs.cache-hit != 'true'
  41. run: |
  42. set -ex
  43. opam init -c ${{ env.OCAML_VERSION }}
  44. opam update
  45. eval $(opam env)
  46. opam env
  47. opam pin add haxe . --no-action
  48. opam install haxe --deps-only --assume-depexts
  49. opam list
  50. ocamlopt -v
  51. - name: Set ADD_REVISION=1 for non-release
  52. if: ${{ !startsWith(github.ref, 'refs/tags/') }}
  53. run: echo "ADD_REVISION=1" >> $GITHUB_ENV
  54. - name: Build Haxe
  55. run: |
  56. set -ex
  57. eval $(opam env)
  58. opam exec -- make -s STATICLINK=1 "LIB_PARAMS=\"/usr/local/lib/libz.a\" \"/usr/local/lib/libpcre2-8.a\" \"/usr/local/lib/libmbedtls.a\" \"/usr/local/lib/libmbedcrypto.a\" \"/usr/local/lib/libmbedx509.a\"" haxe
  59. opam exec -- make -s haxelib
  60. opam exec -- make -s package_unix package_installer_mac
  61. ls -l out
  62. otool -L ./haxe
  63. otool -L ./haxelib
  64. - name: Upload artifact (x64)
  65. if: matrix.arch == 'x86_64'
  66. uses: actions/upload-artifact@v4
  67. with:
  68. name: macX64Binaries
  69. path: out
  70. - name: Upload artifact (arm)
  71. if: matrix.arch == 'arm64'
  72. uses: actions/upload-artifact@v4
  73. with:
  74. name: macArmBinaries
  75. path: out