name: build # build on c/cpp changes or workflow changes on: - push - pull_request jobs: linux-gl: runs-on: ubuntu-latest container: image: ubuntu:bionic env: { LANG: "C.UTF-8" } steps: - uses: actions/checkout@v3 - name: Install deps run: | apt-get update apt-get install g++ cmake libxi-dev libgl1-mesa-dev libpng-dev libjpeg-dev zlib1g-dev -qyy - name: Build run: | cmake . make VERBOSE=1 -j2 - name: Test run: | ctest --output-on-failure - name: Package run: | make DESTDIR=$PWD/_install install tar -c -I "gzip -9" -f irrlicht-linux.tar.gz -C ./_install/usr/local . - uses: actions/upload-artifact@v3 with: name: irrlicht-linux path: ./irrlicht-linux.tar.gz linux-gles: runs-on: ubuntu-latest container: image: ubuntu:bionic env: { LANG: "C.UTF-8" } steps: - uses: actions/checkout@v3 - name: Install deps run: | apt-get update apt-get install g++ cmake libxi-dev libgles2-mesa-dev libpng-dev libjpeg-dev zlib1g-dev xvfb -qyy - name: Build run: | cmake . -DBUILD_EXAMPLES=1 -DENABLE_OPENGL=OFF -DENABLE_GLES2=ON make -j2 - name: Test (headless) run: | cd bin/Linux ./AutomatedTest null - name: Test (Xvfb) run: | cd bin/Linux LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest ogles2 linux-sdl: runs-on: ubuntu-latest container: image: ubuntu:jammy env: { LANG: "C.UTF-8" } steps: - uses: actions/checkout@v3 - name: Install deps run: | apt-get update apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev -qyy - name: Build run: | cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON make -j2 - name: Test (headless) run: | cd bin/Linux ./AutomatedTest null linux-sdl-gl3: runs-on: ubuntu-latest container: image: ubuntu:jammy env: { LANG: "C.UTF-8" } steps: - uses: actions/checkout@v3 - name: Install deps run: | apt-get update apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev xvfb -qyy - name: Build run: | cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DENABLE_OPENGL=OFF -DENABLE_OPENGL3=ON make -j2 - name: Test (headless) run: | cd bin/Linux ./AutomatedTest null - name: Test (Xvfb) run: | cd bin/Linux LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest opengl3 linux-sdl-gles2: runs-on: ubuntu-latest container: image: ubuntu:jammy env: { LANG: "C.UTF-8" } steps: - uses: actions/checkout@v3 - name: Install deps run: | apt-get update apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev xvfb -qyy - name: Build run: | cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DENABLE_OPENGL=OFF -DENABLE_GLES2=ON make -j2 - name: Test (headless) run: | cd bin/Linux ./AutomatedTest null - name: Test (Xvfb) run: | cd bin/Linux LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest ogles2 mingw: name: "MinGW ${{matrix.config.variant}}${{matrix.config.extras}}" runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: config: - {variant: win32, arch: i686} - {variant: win64, arch: x86_64} - {variant: win32, arch: i686, extras: "-sdl"} - {variant: win64, arch: x86_64, extras: "-sdl"} steps: - uses: actions/checkout@v3 - name: Install compiler run: | sudo apt-get update && sudo apt-get install cmake -qyy wget http://minetest.kitsunemimi.pw/mingw-w64-${{matrix.config.arch}}_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr - name: Build run: | ./scripts/ci-build-mingw.sh package env: CC: ${{matrix.config.arch}}-w64-mingw32-gcc CXX: ${{matrix.config.arch}}-w64-mingw32-g++ extras: ${{matrix.config.extras}} - uses: actions/upload-artifact@v3 with: name: irrlicht-${{matrix.config.variant}}${{matrix.config.extras}} path: ./irrlicht-${{matrix.config.variant}}${{matrix.config.extras}}.zip macos: runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: Install deps run: | brew update brew install cmake libpng jpeg - name: Build run: | cmake . -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_EXAMPLES=1 make -j3 - name: Test (headless) run: | ./bin/OSX/AutomatedTest null msvc: name: VS 2019 ${{ matrix.config.arch }} ${{ matrix.sdl.label }} runs-on: windows-2019 env: VCPKG_VERSION: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 # 2023.10.19 vcpkg_packages: zlib libpng libjpeg-turbo opengl-registry strategy: fail-fast: false matrix: config: - arch: x86 generator: "-G'Visual Studio 16 2019' -A Win32" vcpkg_triplet: x86-windows - arch: x64 generator: "-G'Visual Studio 16 2019' -A x64" vcpkg_triplet: x64-windows sdl: - use: FALSE label: '(no SDL)' - use: TRUE label: '(with SDL)' vcpkg_packages: sdl2 steps: - name: Checkout uses: actions/checkout@v3 - name: Restore from cache and run vcpkg uses: lukka/run-vcpkg@v7 with: vcpkgArguments: ${{env.vcpkg_packages}} ${{matrix.sdl.vcpkg_packages}} vcpkgDirectory: '${{ github.workspace }}\vcpkg' appendedCacheKey: ${{ matrix.config.vcpkg_triplet }} vcpkgGitCommitId: ${{ env.VCPKG_VERSION }} vcpkgTriplet: ${{ matrix.config.vcpkg_triplet }} - name: CMake run: | cmake ${{matrix.config.generator}} ` -DUSE_SDL2=${{matrix.sdl.use}} ` -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}\vcpkg\scripts\buildsystems\vcpkg.cmake" ` -DCMAKE_BUILD_TYPE=Release . - name: Build run: cmake --build . --config Release - name: Create artifact folder run: | mkdir artifact/ mkdir artifact/lib/ - name: Move dlls into artifact folder run: move bin\Win32-VisualStudio\Release\* artifact\lib\ - name: Move includes into artifact folder run: move include artifact/ - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: msvc-${{ matrix.config.arch }} path: artifact/