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: 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: | sed '/#define _IRR_COMPILE_WITH_OGLES2_/ s|^//||g' -i include/IrrCompileConfig.h sed '/#define _IRR_COMPILE_WITH_OPENGL_/ s|^|//|g' -i include/IrrCompileConfig.h cmake . -DBUILD_EXAMPLES=1 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 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: | sed '/#define _IRR_COMPILE_WITH_SDL_DEVICE_/ s|^//||g' -i include/IrrCompileConfig.h cmake . -DBUILD_EXAMPLES=1 make -j2 - name: Test (headless) run: | cd bin/Linux ./AutomatedTest null win32: runs-on: ubuntu-20.04 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-i686_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: i686-w64-mingw32-gcc CXX: i686-w64-mingw32-g++ - uses: actions/upload-artifact@v3 with: name: irrlicht-win32 path: ./irrlicht-win32.zip win64: runs-on: ubuntu-20.04 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-x86_64_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: x86_64-w64-mingw32-gcc CXX: x86_64-w64-mingw32-g++ - uses: actions/upload-artifact@v3 with: name: irrlicht-win64 path: ./irrlicht-win64.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 }} runs-on: windows-2019 env: VCPKG_VERSION: 14e7bb4ae24616ec54ff6b2f6ef4e8659434ea44 # 2022.05.10 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 steps: - name: Checkout uses: actions/checkout@v3 - name: Restore from cache and run vcpkg uses: lukka/run-vcpkg@v7 with: vcpkgArguments: ${{env.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}} ` -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/