build-mac.yml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. - name: Install dependencies
  2. env:
  3. # For compatibility with macOS 10.13
  4. ZLIB_VERSION: 1.3.1
  5. MBEDTLS_VERSION: 2.28.5
  6. PCRE2_VERSION: 10.42
  7. run: |
  8. set -ex
  9. brew update
  10. brew bundle --file=tests/Brewfile --no-upgrade
  11. curl -L https://github.com/madler/zlib/releases/download/v$ZLIB_VERSION/zlib-$ZLIB_VERSION.tar.gz | tar xz
  12. cd zlib-$ZLIB_VERSION
  13. ./configure
  14. sudo make && sudo make install
  15. cd ..
  16. curl -L https://github.com/ARMmbed/mbedtls/archive/v$MBEDTLS_VERSION.tar.gz | tar xz
  17. cd mbedtls-$MBEDTLS_VERSION
  18. sudo make && sudo make install
  19. cd ..
  20. curl -L https://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2_VERSION/pcre2-$PCRE2_VERSION.tar.gz | tar xz
  21. cd pcre2-$PCRE2_VERSION
  22. ./configure --enable-unicode --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode-properties --enable-pcre2grep-libz --enable-pcre2grep-libbz2 --enable-jit
  23. sudo make && sudo make install
  24. cd ..
  25. - name: Install OCaml libraries
  26. if: steps.cache-opam.outputs.cache-hit != 'true'
  27. run: |
  28. set -ex
  29. opam init # --disable-sandboxing
  30. opam update
  31. opam switch create ${{env.OCAML_VERSION}}
  32. eval $(opam env)
  33. opam env
  34. opam pin add haxe . --no-action
  35. opam install haxe --deps-only --assume-depexts
  36. opam list
  37. ocamlopt -v
  38. - name: Set ADD_REVISION=1 for non-release
  39. if: ${{ !startsWith(github.ref, 'refs/tags/') }}
  40. run: echo "ADD_REVISION=1" >> $GITHUB_ENV
  41. - name: Build Haxe
  42. run: |
  43. set -ex
  44. eval $(opam env)
  45. opam config 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
  46. opam config exec -- make -s haxelib
  47. make -s package_unix package_installer_mac
  48. ls -l out
  49. otool -L ./haxe
  50. otool -L ./haxelib
  51. - name: Upload artifact (x64)
  52. if: runner.arch == 'X64'
  53. uses: actions/upload-artifact@v4
  54. with:
  55. name: macX64Binaries
  56. path: out
  57. - name: Upload artifact (arm)
  58. if: runner.arch == 'ARM64'
  59. uses: actions/upload-artifact@v4
  60. with:
  61. name: macArmBinaries
  62. path: out