ci: install crypto++ #149
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
- push | |
- pull_request | |
jobs: | |
build: | |
continue-on-error: ${{ ! matrix.required }} | |
strategy: | |
fail-fast: false | |
matrix: | |
ocaml-version: | |
- 4.03.0 | |
- 4.04.2 | |
- 4.05.0 | |
- 4.06.1 | |
- 4.07.1 | |
- 4.08.1 | |
- 4.09.1 | |
- 4.10.0 | |
- 4.11.1 | |
- 4.12.1 | |
- 4.13.1 | |
- 4.14.1 | |
required: | |
- true | |
os: | |
- ubuntu-latest | |
include: | |
- ocaml-version: 4.14.1 | |
required: true | |
os: macos-latest | |
- ocaml-version: 4.14.1 | |
required: false | |
os: windows-latest | |
- ocaml-version: 5.2.0 | |
required: false | |
os: ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Use OCaml ${{ matrix.ocaml-version }} | |
uses: ocaml/setup-ocaml@v3 | |
with: | |
ocaml-compiler: ${{ matrix.ocaml-version }} | |
- run: sudo apt install libcrypto++-dev libminiupnpc-dev libnatpmp-dev libgd-dev | |
if: matrix.os == 'ubuntu-latest' | |
- run: brew install cryptopp miniupnpc libnatpmp gd | |
if: matrix.os == 'macos-latest' | |
- run: | | |
echo "C_INCLUDE_PATH=$HOMEBREW_PREFIX/include:$C_INCLUDE_PATH" >> $GITHUB_ENV | |
echo "LIBRARY_PATH=$HOMEBREW_PREFIX/lib:$LIBRARY_PATH" >> $GITHUB_ENV | |
if: matrix.os == 'macos-latest' | |
# https://cygwin.com/packages/ doesn't have cryptopp and many other packages | |
# I guess should build with mingw? | |
- run: D:\\cygwin\\setup-x86_64.exe "--root" "D:\\cygwin" "--quiet-mode" "unattended" "--no-shortcuts" "--no-startmenu" "--no-desktop" "--no-admin" "--no-version-check" "--no-write-registry" "--packages" "mingw64-x86_64-gd" | |
if: matrix.os == 'windows-latest' | |
- run: | | |
echo $CPATH | |
echo $C_INCLUDE_PATH | |
echo $LIBRARY_PATH | |
which -a pkg-config | |
ls -hlA /opt/homebrew/lib/pkgconfig | |
/opt/homebrew/bin/pkg-config --list-all | |
pkg-config --list-all | |
pkg-config --cflags libcrypto++ || true | |
pkg-config --libs libcrypto++ || true | |
echo "" | cpp -v || true | |
continue-on-error: true | |
- run: opam pin add mldonkey.dev . --no-action | |
# not needed, opam install will do it automatically | |
# - run: opam depext mldonkey --yes --with-doc --with-test | |
- run: opam install . --deps-only --with-doc --with-test | |
# https://github.com/ocaml/setup-ocaml/issues/815#issuecomment-2204838759 | |
# SHELLOPTS workaround for windows | |
# setting SHELLOPTS via GITHUB_ENV didn't work for some reason | |
- run: opam exec -- env SHELLOPTS=igncr sh ./configure --enable-debug --enable-upnp-natpmp | |
- run: opam exec -- make | |
- run: opam exec -- make utils | |
- name: Upload the build artifact | |
if: ${{ matrix.ocaml-version == '4.14.1' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mlnet-${{ matrix.os }}.exe | |
path: mlnet |