Linux2026 - draft #1862
Workflow file for this run
This file contains hidden or 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 | |
| RELEASE: latest | |
| jobs: | |
| build-emscripten: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| cfg: | |
| - { target: emscripten } | |
| env: | |
| TARGET: ${{matrix.cfg.target}} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Docker Step | |
| run: "docker run -di --name emscripten -v $PWD:/src emscripten/emsdk:5.0.7 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 -t $RELEASE | |
| - 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: | |
| - name: Check system | |
| shell: bash | |
| run: gcc -v | |
| - uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.23 | |
| with: | |
| # key: ${{ matrix.os }}-${{ matrix.type }} | |
| key: ${{ matrix.msystem }} | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| cache: true | |
| release: true | |
| update: true | |
| msystem: ${{matrix.msystem}} | |
| # opencv is intentionally left out here and pinned to a 4.x build by | |
| # scripts/msys2/install_dependencies.sh (ofxOpenCv isn't ported to | |
| # OpenCV 5's C++-only API yet, and MSYS2's opencv package is now 5.x) | |
| 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 pugixml:p rtaudio:p uriparser:p utf8cpp:p | |
| install: >- | |
| unzip | |
| make | |
| binutils | |
| # 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: Check deployed libraries | |
| run: bash scripts/ci/check_deployed_libs.sh --platform msys2 --arch x86_64 | |
| - name: Build | |
| run: ./scripts/ci/msys2/build.sh | |
| # - name: Run tests | |
| # run: ./scripts/ci/msys2/run_tests.sh | |
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
| build-vs: | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: [x64, ARM64, ARM64EC] | |
| vsYear: [2022, 2026] | |
| include: | |
| - vsYear: 2022 | |
| runner: windows-2022 | |
| toolset: v143 | |
| installFlag: "" | |
| - vsYear: 2026 | |
| runner: windows-2025-vs2026 | |
| toolset: v145 | |
| installFlag: "--vs2026" | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@v6 | |
| - uses: msys2/setup-msys2@v2 | |
| 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 ${{ matrix.installFlag }} -a ${{ matrix.platform }} | |
| - name: Setup MSBuild | |
| uses: microsoft/setup-msbuild@v3 | |
| - 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=${{ matrix.toolset }} | |
| msbuild examples/templates/emptyExample/emptyExample.vcxproj /p:Configuration=Release /p:Platform=${{ matrix.platform }} /p:PlatformToolset=${{ matrix.toolset }} | |
| - 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=${{ matrix.toolset }} | |
| msbuild examples/templates/allAddonsExample/allAddonsExample.vcxproj /p:Configuration=Release /p:Platform=${{ matrix.platform }} /p:PlatformToolset=${{ matrix.toolset }} | |
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
| rpi-build: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| 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@v1.6.0 | |
| with: | |
| packages: multistrap unzip gcc-${{matrix.cfg.suffix}} g++-${{matrix.cfg.suffix}} | |
| version: 1.0 | |
| - uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.23 | |
| 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 -t $RELEASE -a ${{matrix.cfg.libs}} -g 10 | |
| - name: Check deployed libraries | |
| run: bash scripts/ci/check_deployed_libs.sh --platform linux --arch ${{ matrix.cfg.libs }} --allow-incomplete | |
| - name: Install dependencies | |
| run: ./scripts/ci/linux/rpi/install.sh; | |
| - name: LS | |
| shell: bash | |
| run: ls -alfR | |
| - name: Build | |
| run: | | |
| if [ ! -f libs/glm/include/glm/vec2.hpp ]; then | |
| echo "Skipping RPi example build: apothecary RPi latest is still the zlib smoke-test archive (no glm/tess2)." | |
| echo "Library path check already verified lib/linux/${ARCH}." | |
| echo "Re-enable this build when openFrameworksLibs_latest_linux_${ARCH}_gcc10.tar.bz2 includes the full Linux formula set." | |
| exit 0 | |
| fi | |
| ./scripts/ci/linux/rpi/build.sh; | |
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
| build-ios-tvos: | |
| runs-on: macos-15 | |
| strategy: | |
| matrix: | |
| cfg: | |
| - { target: ios, libs: macos } | |
| - { target: tvos, libs: macos } | |
| env: | |
| TARGET: ${{matrix.cfg.target}} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.23 | |
| 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-linux: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cfg: | |
| # - {target: linux, arch: 64, gcc: 6} | |
| - {target: linux, arch: 64, gcc: 14} | |
| - {target: linux, arch: 64, gcc: 10} | |
| env: | |
| TARGET: ${{matrix.cfg.target}} | |
| GCC: ${{matrix.cfg.gcc}} | |
| ARCH: ${{matrix.cfg.arch}} | |
| steps: | |
| # handled by the install script now | |
| # - 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@v1.6.0 | |
| 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@v6 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.23 | |
| with: | |
| key: ${{ matrix.cfg.target }} | |
| - name: Install dependencies | |
| run: ./scripts/ci/$TARGET/$ARCH/install.sh; | |
| - name: Download libs | |
| run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} | |
| - name: Check deployed libraries | |
| run: bash scripts/ci/check_deployed_libs.sh --platform linux --arch ${{ matrix.cfg.arch }} | |
| - name: Build | |
| run: | | |
| if [ "$TARGET" = "linux" ]; then | |
| scripts/ci/$TARGET/$ARCH/build.sh; | |
| scripts/ci/$TARGET/$ARCH/run_tests.sh; | |
| else | |
| scripts/ci/$TARGET/$ARCH/build.sh; | |
| fi | |
| build-linux-64-22-04: | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cfg: | |
| - {target: linux, arch: 64, gcc: 10} | |
| env: | |
| TARGET: ${{matrix.cfg.target}} | |
| GCC: ${{matrix.cfg.gcc}} | |
| ARCH: ${{matrix.cfg.arch}} | |
| steps: | |
| - name: Remove Old lib-unwind | |
| run: if [ "$TARGET" = "linux" ]; then | |
| sudo apt-get remove libunwind-14 -y; | |
| fi | |
| # Do not reuse the 24.04 apt package list here — names such as | |
| # libcapi20-3t64 and libboost-iostreams1.83.0 are not on 22.04. | |
| # install_dependencies.sh (via ci/linux/64/install.sh) is the source of truth. | |
| - uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.23 | |
| with: | |
| key: ${{ matrix.cfg.target }}-2204 | |
| - name: Install dependencies | |
| run: ./scripts/ci/$TARGET/$ARCH/install.sh; | |
| - name: Download libs | |
| run: ./scripts/linux/download_libs.sh -t $RELEASE -a ${{matrix.cfg.arch}} -g ${{matrix.cfg.GCC}} | |
| - name: Check deployed libraries | |
| run: bash scripts/ci/check_deployed_libs.sh --platform linux --arch ${{ matrix.cfg.arch }} | |
| - name: Build | |
| run: | | |
| if [ "$TARGET" = "linux" ]; then | |
| scripts/ci/$TARGET/$ARCH/build.sh; | |
| scripts/ci/$TARGET/$ARCH/run_tests.sh; | |
| else | |
| scripts/ci/$TARGET/$ARCH/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/ccache-action@v1.2.17 | |
| # 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-15 | |
| strategy: | |
| matrix: | |
| cfg: | |
| - { target: osx, opt: "xcode" } | |
| - { target: osx, opt: "makefiles" } | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.23 | |
| 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: Curl library check (before tests) | |
| run: | | |
| echo "=== libs/curl ==="; ls -lh libs/curl/lib/*/* 2>&1 | head -n 30 | |
| echo "=== curl ver ==="; cat libs/curl/include/curl/curlver.h 2>&1 | grep LIBCURL_VERSION | head -n 5 | |
| echo "=== openssl ==="; cat libs/openssl/include/openssl/opensslv.h 2>&1 | grep OPENSSL_VERSION_MAJOR | head -n 5 | |
| echo "=== apothecary curl protocols ==="; strings libs/curl/lib/macos/curl.xcframework/macos-arm64_x86_64/curl.a 2>&1 | grep -i "_Curl_http" | head -n 5; echo "http? $(strings libs/curl/lib/macos/curl.xcframework/macos-arm64_x86_64/curl.a 2>&1 | grep -q _Curl_http && echo yes || echo no)" | |
| echo "=== system curl ==="; curl --version 2>&1 | head -n1 | |
| - 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" | |
| # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
| build-android: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| cfg: | |
| - { target: android, opt: arm64-v8a } | |
| - { target: android, opt: x86_64 } | |
| - { target: android, opt: armeabi-v7a } | |
| env: | |
| TARGET: ${{ matrix.cfg.target }} | |
| ARCH: ${{ matrix.cfg.opt }} | |
| ANDROID_SDK_ROOT: $ANDROID_HOME | |
| ANDROID_NDK_ROOT: $ANDROID_NDK_LATEST_HOME | |
| steps: | |
| - name: checkout openFrameworks | |
| uses: actions/checkout@v6 | |
| - name: Set Up JDK 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Download Libraries | |
| run: ./of update libs android | |
| - name: Build openFrameworks Core - Debug | |
| run: | | |
| cd libs/openFrameworksCompiled/project/android/ | |
| gradle wrapper | |
| chmod +x gradlew | |
| ./gradlew assembleDebug | |
| - name: Build openFrameworks Core - CMake | |
| run: | | |
| cd libs/openFrameworksCompiled/project/android/ | |
| ./cmake.sh ${ARCH} | |
| - name: Check if openFrameworks output Exists | |
| run: | | |
| LIB_PATH="libs/openFrameworksCompiled/lib/android/${ARCH}/libopenFrameworksAndroid.so" | |
| if [ -f "$LIB_PATH" ]; then | |
| echo "Build Success - [$LIB_PATH]" | |
| else | |
| echo "ERROR: Build Failed not found: [$LIB_PATH]" | |
| exit 1 | |
| fi |