name: ci on: [push, pull_request] jobs: # # ----------------------------------------------------------------------- # # Linux build matrix # # ----------------------------------------------------------------------- # build_linux: # runs-on: ubuntu-latest # defaults: # run: # shell: bash # strategy: # fail-fast: false # matrix: # config: # - { compiler: gcc, version: 7, build_type: Release, cppstd: 11 } # - { compiler: gcc, version: 9, build_type: Release, cppstd: 17 } # - { compiler: gcc, version: 11, build_type: Debug, cppstd: 20 } # - { compiler: gcc, version: 12, build_type: Release, cppstd: 20 } # - { compiler: clang, version: 12, build_type: Debug, cppstd: 17, asan: OFF } # - { compiler: clang, version: 15, build_type: Release, cppstd: 20, asan: OFF } # container: # image: ${{ matrix.config.compiler == 'clang' && 'teeks99/clang-ubuntu' || matrix.config.compiler }}:${{ matrix.config.version }} # name: "${{ matrix.config.compiler}} ${{ matrix.config.version }} (C++${{ matrix.config.cppstd }}, ${{ matrix.config.build_type }})" # steps: # - uses: actions/checkout@main # - name: Setup # run: | # apt-get update # apt-get install -y curl git pkg-config libsystemd-dev # CMAKE_VERSION="3.24.2" # curl -sSL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.sh -o install-cmake.sh # chmod +x install-cmake.sh # ./install-cmake.sh --prefix=/usr/local --skip-license # - name: Setup Compiler # if: matrix.config.compiler == 'clang' # run: | # if [[ "${{ matrix.config.version }}" -ge 4 ]]; then # scripts/ci_setup_clang.sh "${{ matrix.config.version }}" # echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV # fi # echo "CC=clang-${{ matrix.config.version }}" >> $GITHUB_ENV # echo "CXX=clang++-${{ matrix.config.version }}" >> $GITHUB_ENV # - name: Build # run: | # mkdir -p build && cd build # cmake .. \ # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ # -DCMAKE_CXX_STANDARD=${{ matrix.config.cppstd }} \ # -DSPDLOG_BUILD_EXAMPLE=${{ matrix.config.examples || 'ON' }} \ # -DSPDLOG_BUILD_EXAMPLE_HO=${{ matrix.config.examples || 'ON' }} \ # -DSPDLOG_BUILD_WARNINGS=ON \ # -DSPDLOG_BUILD_BENCH=OFF \ # -DSPDLOG_BUILD_TESTS=ON \ # -DSPDLOG_BUILD_TESTS_HO=OFF \ # -DSPDLOG_SANITIZE_ADDRESS=${{ matrix.config.asan || 'ON' }} # make -j2 # ctest -j2 --output-on-failure # # # ----------------------------------------------------------------------- # # OS X build matrix # # ----------------------------------------------------------------------- # build_osx: # runs-on: macOS-latest # name: "OS X Clang (C++11, Release)" # steps: # - uses: actions/checkout@main # - name: Build # run: | # mkdir -p build && cd build # cmake .. \ # -DCMAKE_BUILD_TYPE=Release \ # -DCMAKE_CXX_STANDARD=11 \ # -DSPDLOG_BUILD_EXAMPLE=ON \ # -DSPDLOG_BUILD_EXAMPLE_HO=ON \ # -DSPDLOG_BUILD_WARNINGS=ON \ # -DSPDLOG_BUILD_BENCH=OFF \ # -DSPDLOG_BUILD_TESTS=ON \ # -DSPDLOG_BUILD_TESTS_HO=OFF \ # -DSPDLOG_SANITIZE_ADDRESS=OFF # make -j2 # ctest -j2 --output-on-failure # ----------------------------------------------------------------------- # Windows build matrix # ----------------------------------------------------------------------- # build_windows: # runs-on: windows-latest # strategy: # fail-fast: true # matrix: # config: # - GENERATOR: "Visual Studio 17 2022" # BUILD_TYPE: Release # BUILD_SHARED: 'ON' # FATAL_ERRORS: 'ON' # WCHAR: 'OFF' # WCHAR_FILES: 'OFF' # BUILD_EXAMPLE: 'OFF' # USE_STD_FORMAT: 'ON' # CXX_STANDARD: 20 # - GENERATOR: "Visual Studio 17 2022" # BUILD_TYPE: Release # BUILD_SHARED: 'ON' # FATAL_ERRORS: 'ON' # WCHAR: 'ON' # WCHAR_FILES: 'ON' # BUILD_EXAMPLE: 'OFF' # USE_STD_FORMAT: 'ON' # CXX_STANDARD: 20 # - GENERATOR: "Visual Studio 17 2022" # BUILD_TYPE: Release # BUILD_SHARED: 'ON' # FATAL_ERRORS: 'ON' # WCHAR: 'OFF' # WCHAR_FILES: 'OFF' # BUILD_EXAMPLE: 'ON' # USE_STD_FORMAT: 'OFF' # CXX_STANDARD: 17 # # steps: # - name: Checkout code # uses: actions/checkout@v4 # # - name: CMake ${{ matrix.config.GENERATOR }} CXX=${{matrix.config.CXX_STANDARD}} WCHAR=${{matrix.config.WCHAR_FILES}} STD_FORMAT=${{matrix.config.USE_STD_FORMAT}} # shell: pwsh # run: | # mkdir build # cd build # cmake -G "${{ matrix.config.GENERATOR }}" -A x64 ` # -D CMAKE_BUILD_TYPE=${{ matrix.config.BUILD_TYPE }} ` # -D BUILD_SHARED_LIBS=${{ matrix.config.BUILD_SHARED }} ` # -D SPDLOG_WCHAR_SUPPORT=${{ matrix.config.WCHAR }} ` # -D SPDLOG_WCHAR_FILENAMES=${{ matrix.config.WCHAR_FILES }} ` # -D SPDLOG_BUILD_EXAMPLE=${{ matrix.config.BUILD_EXAMPLE }} ` # -D SPDLOG_BUILD_EXAMPLE_HO=${{ matrix.config.BUILD_EXAMPLE }} ` # -D SPDLOG_BUILD_TESTS=ON ` # -D SPDLOG_BUILD_TESTS_HO=OFF ` # -D SPDLOG_BUILD_WARNINGS=${{ matrix.config.FATAL_ERRORS }} ` # -D SPDLOG_USE_STD_FORMAT=${{ matrix.config.USE_STD_FORMAT }} ` # -D CMAKE_CXX_STANDARD=${{ matrix.config.CXX_STANDARD }} .. # # - name: Build # shell: pwsh # run: | # cd build # cmake --build . --parallel --config ${{ matrix.config.BUILD_TYPE }} # # - name: Run Tests # shell: pwsh # env: # PATH: ${{ env.PATH }};${{ github.workspace }}\build\_deps\catch2-build\src\${{ matrix.config.BUILD_TYPE }};${{ github.workspace }}\build\${{ matrix.config.BUILD_TYPE }} # run: | # build\tests\${{ matrix.config.BUILD_TYPE }}\spdlog-utests.exe # # # ----------------------------------------------------------------------- # # Windows build matrix # # ----------------------------------------------------------------------- # build_windos-2019: # runs-on: windows-2019 # strategy: # fail-fast: true # matrix: # config: # - GENERATOR: "Visual Studio 16 2019" # BUILD_TYPE: Release # BUILD_SHARED: 'ON' # FATAL_ERRORS: 'ON' # WCHAR: 'OFF' # WCHAR_FILES: 'OFF' # BUILD_EXAMPLE: 'ON' # USE_STD_FORMAT: 'OFF' # CXX_STANDARD: 17 # # steps: # - name: Checkout code # uses: actions/checkout@v4 # # - name: CMake ${{ matrix.config.GENERATOR }} CXX=${{matrix.config.CXX_STANDARD}} WCHAR=${{matrix.config.WCHAR_FILES}} STD_FORMAT=${{matrix.config.USE_STD_FORMAT}} # shell: pwsh # run: | # mkdir build # cd build # cmake -G "${{ matrix.config.GENERATOR }}" -A x64 ` # -D CMAKE_BUILD_TYPE=${{ matrix.config.BUILD_TYPE }} ` # -D BUILD_SHARED_LIBS=${{ matrix.config.BUILD_SHARED }} ` # -D SPDLOG_WCHAR_SUPPORT=${{ matrix.config.WCHAR }} ` # -D SPDLOG_WCHAR_FILENAMES=${{ matrix.config.WCHAR_FILES }} ` # -D SPDLOG_BUILD_EXAMPLE=${{ matrix.config.BUILD_EXAMPLE }} ` # -D SPDLOG_BUILD_EXAMPLE_HO=${{ matrix.config.BUILD_EXAMPLE }} ` # -D SPDLOG_BUILD_TESTS=ON ` # -D SPDLOG_BUILD_TESTS_HO=OFF ` # -D SPDLOG_BUILD_WARNINGS=${{ matrix.config.FATAL_ERRORS }} ` # -D SPDLOG_USE_STD_FORMAT=${{ matrix.config.USE_STD_FORMAT }} ` # -D CMAKE_CXX_STANDARD=${{ matrix.config.CXX_STANDARD }} .. # # - name: Build # shell: pwsh # run: | # cd build # cmake --build . --parallel --config ${{ matrix.config.BUILD_TYPE }} # # - name: Run Tests # shell: pwsh # env: # PATH: ${{ env.PATH }};${{ github.workspace }}\build\_deps\catch2-build\src\${{ matrix.config.BUILD_TYPE }};${{ github.workspace }}\build\${{ matrix.config.BUILD_TYPE }} # run: | # build\tests\${{ matrix.config.BUILD_TYPE }}\spdlog-utests.exe # # #