Update install_dependencies.sh #1052
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: OF | |
# make the action not run on the local repo if the branch is also in a pull request to OF/OF | |
on: | |
push: | |
if: github.event_name == 'push' && github.event.pull_request == null | |
paths-ignore: | |
- '**/*.md' | |
- 'examples/**' | |
pull_request: | |
if: github.event_name == 'pull_request' && github.repository == 'openframeworks/openFrameworks' | |
paths-ignore: | |
- '**/*.md' | |
- 'examples/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
env: | |
ccache: ccache | |
jobs: | |
build-emscripten: | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
cfg: | |
- {target: emscripten} | |
env: | |
TARGET: ${{matrix.cfg.target}} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Docker Step | |
run: "docker run -di --name emscripten -v $PWD:/src emscripten/emsdk:3.1.21 bash" | |
- name: Determine Release | |
id: vars | |
shell: bash | |
run: | | |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
echo "RELEASE=nightly" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
else | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
fi | |
- name: Download libs | |
run: ./scripts/$TARGET/download_libs.sh | |
- name: Install dependencies | |
run: ./scripts/ci/$TARGET/install.sh | |
- name: Build | |
run: docker exec -i emscripten sh -c "scripts/ci/$TARGET/build.sh"; | |
- name: Upload Libs | |
run: scripts/ci/upload_of_lib.sh; | |
env: | |
GA_CI_SECRET: ${{ secrets.CI_SECRET }} | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
build-msys2: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
msystem: | |
- mingw64 | |
- ucrt64 | |
- clang64 | |
# - clangarm64 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
# key: ${{ matrix.os }}-${{ matrix.type }} | |
key: ${{ matrix.msystem }} | |
- uses: msys2/[email protected] | |
with: | |
cache: true | |
release: true | |
update: true | |
msystem: ${{matrix.msystem}} | |
pacboy: openssl:p python:p gcc:p assimp:p cairo:p curl:p freeglut:p FreeImage:p glew:p glfw:p glm:p libsndfile:p libusb:p libxml2:p mpg123:p nlohmann-json:p openal:p opencv:p pugixml:p rtaudio:p uriparser:p utf8cpp:p | |
install: >- | |
unzip | |
make | |
# lld | |
# gcc:p gdb:p zlib:p poco:p pkgconf:p harfbuzz:p ntldd-git:p | |
# boost:p tools:p | |
# install: >- | |
# unzip | |
# git | |
# rsync | |
# wget | |
- name: Install dependencies | |
run: ./scripts/ci/msys2/install.sh --msystem=${{ matrix.msystem }} | |
- name: Build | |
run: ./scripts/ci/msys2/build.sh | |
# - name: Run tests | |
# run: ./scripts/ci/msys2/run_tests.sh | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
build-vs2022: | |
runs-on: windows-2022 | |
strategy: | |
matrix: | |
platform: [x64, ARM64, ARM64EC] | |
env: | |
BITS: ${{ matrix.bits }} | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
- uses: msys2/[email protected] | |
with: | |
update: true | |
install: >- | |
git | |
unzip | |
- name: Determine Release | |
id: vars | |
shell: bash | |
run: | | |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
echo "RELEASE=nightly" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
else | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
fi | |
- name: Install dependencies | |
shell: msys2 {0} | |
run: | |
./scripts/ci/vs/install.sh | |
- name: Setup MSBuild | |
uses: microsoft/setup-msbuild@v2 | |
- name: Build DEBUG and RELEASE emptyExample | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: | | |
msbuild examples/templates/emptyExample/emptyExample.vcxproj /p:configuration=debug /p:platform=${{ matrix.platform }} /p:PlatformToolset=v143 | |
msbuild examples/templates/emptyExample/emptyExample.vcxproj /p:configuration=release /p:platform=${{ matrix.platform }} /p:PlatformToolset=v143 | |
- name: Build DEBUG and RELEASE allAddonsExample | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: | | |
msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /p:configuration=debug /p:platform=${{ matrix.platform }} /p:PlatformToolset=v143 | |
msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /p:configuration=release /p:platform=${{ matrix.platform }} /p:PlatformToolset=v143 | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
rpi-build: | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
cfg: | |
- { libs: armv6l, multistrap_arch: armhf, suffix: arm-linux-gnueabihf, alladdons: 1 } | |
- { libs: armv7l, multistrap_arch: armhf, suffix: arm-linux-gnueabihf, alladdons: 1 } | |
- { libs: aarch64, multistrap_arch: arm64, suffix: aarch64-linux-gnu, alladdons: 1 } | |
env: | |
ARCH: ${{matrix.cfg.libs}} | |
MULTISTRAP_ARCH: ${{matrix.cfg.multistrap_arch}} | |
ALLADDONSEXAMPLE: ${{matrix.cfg.alladdons}} | |
steps: | |
- name: Cache Packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: multistrap unzip gcc-${{matrix.cfg.suffix}} g++-${{matrix.cfg.suffix}} | |
version: 1.0 | |
- uses: actions/checkout@v4 | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{ matrix.cfg.libs }} | |
- name: Determine Release | |
id: vars | |
shell: bash | |
run: | | |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
echo "RELEASE=nightly" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
else | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
fi | |
- name: Download libs | |
run: ./scripts/linux/download_libs.sh -a ${{matrix.cfg.libs}} -t $RELEASE; | |
- name: Install dependencies | |
run: ./scripts/ci/linuxrpi/install.sh; | |
- name: Build | |
run: ./scripts/ci/linuxrpi/build.sh; | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
build-ios-tvos: | |
runs-on: macos-14 | |
strategy: | |
matrix: | |
cfg: | |
- {target: ios, libs: macos} | |
- {target: tvos, libs: macos} | |
env: | |
TARGET: ${{matrix.cfg.target}} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{ matrix.cfg.target }}-${{ matrix.cfg.libs }} | |
- name: Determine Release | |
id: vars | |
shell: bash | |
run: | | |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
echo "RELEASE=nightly" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
else | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
fi | |
- name: Download libs | |
run: ./scripts/${{matrix.cfg.libs}}/download_libs.sh -t $RELEASE | |
- name: install | |
run: ./scripts/ci/$TARGET/install.sh | |
- name: Build | |
run: ./scripts/ci/$TARGET/build.sh; | |
env: | |
DEVELOPER_DIR: "/Applications/Xcode.app/Contents/Developer" | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
build-linux64: | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
cfg: | |
- {target: linux64, libs: 64gcc6} | |
env: | |
TARGET: ${{matrix.cfg.target}} | |
steps: | |
- name: Remove Old lib-unwind | |
run: if [ "$TARGET" = "linux64" ]; then | |
sudo apt-get remove libunwind-14 -y; | |
fi | |
- name: Cache Packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good | |
version: 1.0 | |
- name: Determine Release | |
id: vars | |
shell: bash | |
run: | | |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
echo "RELEASE=nightly" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
else | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
fi | |
- uses: actions/checkout@v4 | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{ matrix.cfg.target }}-${{ matrix.cfg.libs }} | |
- name: Download libs | |
run: ./scripts/linux/download_libs.sh -a ${{matrix.cfg.libs}} -t $RELEASE; | |
- name: Install dependencies | |
run: ./scripts/ci/$TARGET/install.sh; | |
- name: Build | |
run: if [ "$TARGET" = "linux64" ]; then | |
scripts/ci/linux64/build.sh; | |
scripts/ci/$TARGET/run_tests.sh; | |
else | |
scripts/ci/$TARGET/build.sh; | |
fi | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
# build-linux64-2204: | |
# runs-on: ubuntu-22.04 | |
# strategy: | |
# matrix: | |
# cfg: | |
# - {target: linux64, libs: 64gcc6} | |
# env: | |
# TARGET: ${{matrix.cfg.target}} | |
# steps: | |
# - name: Remove Old lib-unwind | |
# run: if [ "$TARGET" = "linux64" ]; then | |
# sudo apt-get remove libunwind-14 -y; | |
# fi | |
# - name: Cache Packages | |
# uses: awalsh128/cache-apt-pkgs-action@latest | |
# with: | |
# packages: aptitude aptitude-common libboost-iostreams1.83.0 libcwidget4 libsigc++-2.0-0v5 libxapian30 fonts-wine{a} libasound2-plugins{a} libcapi20-3t64{a} libosmesa6{a} libpcsclite1{a} libspeexdsp1{a} libwine{a} libxkbregistry0{a} libz-mingw-w64{a} wine{a} wine64 wget2 make libjack-jackd2-0 libjack-jackd2-dev freeglut3-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libgl1-mesa-dev libglu1-mesa-dev libraw1394-dev libudev-dev libdrm-dev libglew-dev libopenal-dev libsndfile1-dev libfreeimage-dev libcairo2-dev libfreetype6-dev libpulse-dev libusb-1.0-0-dev libgtk2.0-dev libopencv-dev libassimp-dev librtaudio-dev gdb libglfw3-dev liburiparser-dev libpugixml-dev libgconf-2-4 libgtk2.0-0 libpoco-dev libxcursor-dev libxi-dev libxinerama-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-pulseaudio gstreamer1.0-x gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good | |
# version: 1.0 | |
# - uses: actions/checkout@v4 | |
# - name: ccache | |
# uses: hendrikmuhs/[email protected] | |
# with: | |
# key: ${{ matrix.cfg.target }}-${{ matrix.cfg.libs }} | |
# - name: Download libs | |
# run: ./scripts/linux/download_libs.sh -a ${{matrix.cfg.libs}}; | |
# - name: Install dependencies | |
# run: ./scripts/ci/$TARGET/install.sh; | |
# - name: Build | |
# run: if [ "$TARGET" = "linux64" ]; then | |
# scripts/ci/linux64/build.sh; | |
# scripts/ci/$TARGET/run_tests.sh; | |
# else | |
# scripts/ci/$TARGET/build.sh; | |
# fi | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
build-macos: | |
runs-on: macos-14 | |
strategy: | |
matrix: | |
cfg: | |
- {target: osx, opt: "xcode"} | |
- {target: osx, opt: "makefiles"} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{ matrix.cfg.target }}-${{ matrix.cfg.opt }} | |
- name: Determine Release | |
id: vars | |
shell: bash | |
run: | | |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
echo "RELEASE=${{ github.ref_name }}" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
echo "RELEASE=nightly" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == "refs/heads/bleeding" ]]; then | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
else | |
echo "RELEASE=latest" >> $GITHUB_ENV | |
fi | |
- name: Download libs | |
run: ./scripts/${{ matrix.cfg.target }}/download_libs.sh -t $RELEASE | |
- name: Build | |
run: | |
if [ ${{ matrix.cfg.opt }} = "xcode" ]; then | |
scripts/ci/${{ matrix.cfg.target }}/build.sh ${{ matrix.cfg.opt }}; | |
else | |
scripts/ci/${{ matrix.cfg.target }}/run_tests.sh; | |
fi | |
env: | |
DEVELOPER_DIR: "/Applications/Xcode.app/Contents/Developer" | |
SDKROOT: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" | |
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |