Add Protobuf and ODE as ExternalProjects to cmake to fix platform compatibility issues #70
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: | |
branches: | |
- master | |
pull_request: | |
jobs: | |
build-linux: | |
runs-on: ${{ matrix.os }} | |
continue-on-error: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04, ubuntu-22.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Update dependencies" | |
run: sudo apt-get update | |
- name: "Install dependencies" | |
run: sudo apt-get install -y build-essential cmake pkg-config qtbase5-dev libqt5opengl5-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev libboost-dev | |
- name: "Build" | |
run: make | |
build-macos: | |
runs-on: ${{ matrix.os }} | |
continue-on-error: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ macos-12, macos-13 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Install dependencies" | |
run: brew tap robotology/formulae && brew install cmake pkg-config qt@5 | |
- name: "Build" | |
# for some reason qt5 is not correctly in the path and this will break whenever the location of it changes | |
# 5.15.11 is for macos-12 and 5.15.12 is for macos-13 | |
run: PATH=/usr/local/Cellar/qt@5/5.15.11/lib/cmake/Qt5:/usr/local/Cellar/qt@5/5.15.12/lib/cmake/Qt5:$PATH && make | |
build-windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies # saves / restores cache to avoid rebuilding dependencies | |
uses: lukka/run-vcpkg@v11 | |
with: | |
vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 | |
vcpkgDirectory: c:/vcpkg # folder must reside in c:\ otherwise qt wont install due to long path errors | |
- name: Run CMake and run vcpkg to build packages | |
uses: lukka/run-cmake@v10 | |
with: | |
# this preset is needed to actually install the vcpkg dependencies | |
configurePreset: "ninja-multi-vcpkg" | |
configPresetAdditionalArgs: "[-DVCPKG_TARGET_TRIPLET=x64-windows]" | |
buildPreset: "ninja-multi-vcpkg" | |
buildPresetAdditionalArgs: "['--config Release']" | |
env: | |
# [OPTIONAL] Define the vcpkg's triplet you want to enforce, otherwise the default one | |
# for the hosting system will be automatically choosen (x64 is the default on all | |
# platforms, e.g. `x64-osx`). | |
VCPKG_DEFAULT_TRIPLET: "x64-windows" |