Merge pull request #130 from cschreib/cschreib/update-deps #581
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: CI | |
| on: push | |
| env: | |
| BUILD_TYPE: Release | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: | |
| - name: Ubuntu GCC | |
| os: ubuntu-latest | |
| compiler: g++ | |
| arch: "64" | |
| suffix: "" | |
| cmake-flags: "" | |
| - name: Ubuntu Clang | |
| os: ubuntu-latest | |
| compiler: clang++ | |
| arch: "64" | |
| suffix: "" | |
| cmake-flags: "" | |
| - name: Windows | |
| os: windows-latest | |
| compiler: msvc | |
| arch: "64" | |
| suffix: "" | |
| cmake-flags: "" | |
| - name: MacOS | |
| os: macos-latest | |
| compiler: clang++ | |
| arch: "64" | |
| suffix: "" | |
| cmake-flags: "" | |
| - name: WebAssembly | |
| os: ubuntu-latest | |
| compiler: em++ | |
| arch: "32" | |
| suffix: "-emscripten" | |
| cmake-flags: "-DLXGUI_BUILD_GUI_SFML_IMPL=OFF -DLXGUI_BUILD_INPUT_SFML_IMPL=OFF -DLXGUI_TEST_IMPLEMENTATION=OPENGL_SDL" | |
| name: ${{matrix.platform.name}} | |
| runs-on: ${{matrix.platform.os}} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: 'recursive' | |
| - name: Setup Clang | |
| if: matrix.platform.compiler == 'clang++' && matrix.platform.os == 'ubuntu-latest' | |
| run: | | |
| sudo apt install clang | |
| echo "CC=clang" >> $GITHUB_ENV | |
| echo "CXX=clang++" >> $GITHUB_ENV | |
| - name: Setup Conan | |
| shell: bash | |
| working-directory: ${{github.workspace}} | |
| run: | | |
| pip install conan | |
| echo "CONAN_HOME=`pwd`/conan-cache" >> $GITHUB_ENV | |
| - name: Setup Conan cache | |
| id: cache-conan-packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{env.CONAN_HOME}} | |
| key: ${{matrix.platform.name}}-${{matrix.platform.compiler}} | |
| - name: Get Conan dependencies | |
| shell: bash | |
| working-directory: ${{github.workspace}} | |
| run: | | |
| conan profile detect --force | |
| conan create conan/observable_unique_ptr \ | |
| -pr default \ | |
| -pr ./conan/profiles/${{matrix.platform.os}}-${{matrix.platform.arch}}-${{matrix.platform.compiler}} | |
| conan install . \ | |
| --build=missing \ | |
| -c tools.system.package_manager:mode=install \ | |
| -c tools.system.package_manager:sudo=true \ | |
| --output-folder dependencies \ | |
| -pr:b default \ | |
| -pr:h default \ | |
| -pr:h ./conan/profiles/${{matrix.platform.os}}-${{matrix.platform.arch}}-${{matrix.platform.compiler}} | |
| - name: Create Build Environment | |
| run: cmake -E make_directory ${{github.workspace}}/build | |
| - name: Configure CMake | |
| shell: bash | |
| working-directory: ${{github.workspace}}/build | |
| run: | | |
| test -f ../dependencies/conanbuild.sh && source ../dependencies/conanbuild.sh | |
| cmake .. \ | |
| -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |
| -DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \ | |
| -DLXGUI_BUILD_EXAMPLES=OFF \ | |
| -DLXGUI_DEV=ON \ | |
| -DCMAKE_INSTALL_PREFIX=`pwd`/../install \ | |
| -DCMAKE_POLICY_DEFAULT_CMP0091=NEW \ | |
| ${{matrix.platform.cmake-flags}} | |
| - name: Build | |
| shell: bash | |
| working-directory: ${{github.workspace}}/build | |
| run: | | |
| test -f ../dependencies/conanbuild.sh && source ../dependencies/conanbuild.sh | |
| cmake --build . --config ${BUILD_TYPE} --parallel 2 | |
| - name: Install | |
| shell: bash | |
| working-directory: ${{github.workspace}}/build | |
| run: | | |
| test -f ../dependencies/conanbuild.sh && source ../dependencies/conanbuild.sh | |
| cmake --install . --config ${BUILD_TYPE} | |
| - name: Build example SDL | |
| shell: bash | |
| working-directory: ${{github.workspace}}/build | |
| run: | | |
| rm -rf * | |
| test -f ../dependencies/conanbuild.sh && source ../dependencies/conanbuild.sh | |
| cmake ../examples/sdl${{matrix.platform.suffix}} \ | |
| -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |
| -DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \ | |
| -DCMAKE_PREFIX_PATH=`pwd`/../install \ | |
| -DCMAKE_POLICY_DEFAULT_CMP0091=NEW | |
| cmake --build . --config ${BUILD_TYPE} --parallel 2 | |
| - name: Build example OpenGL-SDL | |
| shell: bash | |
| working-directory: ${{github.workspace}}/build | |
| run: | | |
| rm -rf * | |
| test -f ../dependencies/conanbuild.sh && source ../dependencies/conanbuild.sh | |
| cmake ../examples/opengl-sdl${{matrix.platform.suffix}} \ | |
| -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |
| -DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \ | |
| -DCMAKE_PREFIX_PATH=`pwd`/../install \ | |
| -DCMAKE_POLICY_DEFAULT_CMP0091=NEW | |
| cmake --build . --config ${BUILD_TYPE} --parallel 2 | |
| - name: Build example SFML | |
| if: matrix.platform.compiler != 'em++' | |
| shell: bash | |
| working-directory: ${{github.workspace}}/build | |
| run: | | |
| rm -rf * | |
| test -f ../dependencies/conanbuild.sh && source ../dependencies/conanbuild.sh | |
| cmake ../examples/sfml${{matrix.platform.suffix}} \ | |
| -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |
| -DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \ | |
| -DCMAKE_PREFIX_PATH=`pwd`/../install \ | |
| -DCMAKE_POLICY_DEFAULT_CMP0091=NEW | |
| cmake --build . --config ${BUILD_TYPE} --parallel 2 | |
| - name: Build example OpenGL-SFML | |
| if: matrix.platform.compiler != 'em++' | |
| shell: bash | |
| working-directory: ${{github.workspace}}/build | |
| run: | | |
| rm -rf * | |
| test -f ../dependencies/conanbuild.sh && source ../dependencies/conanbuild.sh | |
| cmake ../examples/opengl-sfml${{matrix.platform.suffix}} \ | |
| -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |
| -DCMAKE_TOOLCHAIN_FILE=`pwd`/../dependencies/conan_toolchain.cmake \ | |
| -DCMAKE_PREFIX_PATH=`pwd`/../install \ | |
| -DCMAKE_POLICY_DEFAULT_CMP0091=NEW | |
| cmake --build . --config ${BUILD_TYPE} --parallel 2 | |
| - name: Prepare publish package | |
| if: matrix.platform.compiler == 'em++' && github.ref == 'refs/heads/main' | |
| shell: bash | |
| working-directory: ${{github.workspace}}/bin | |
| run: | | |
| mkdir demo | |
| cp lxgui-test*${{matrix.platform.suffix}}* demo/ | |
| - name: Publish | |
| if: matrix.platform.compiler == 'em++' && github.ref == 'refs/heads/main' | |
| uses: JamesIves/github-pages-deploy-action@v4.7.3 | |
| with: | |
| branch: gh-pages | |
| folder: ${{github.workspace}}/bin/demo | |
| target-folder: demo |