diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 9990dfdf7..ca10af266 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -1,83 +1,83 @@ -#name: linux -# -#on: [push, pull_request] -# -#permissions: -# contents: read -# -#jobs: -# # ----------------------------------------------------------------------- -# # Linux build matrix -# # ----------------------------------------------------------------------- -# build: -# runs-on: ubuntu-latest -# defaults: -# run: -# shell: bash -# strategy: -# fail-fast: false -# matrix: -# config: -# - { 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: gcc, version: 12, build_type: Debug, cppstd: 20, asan: ON } -# - { compiler: clang, version: 12, build_type: Debug, cppstd: 17 } -# - { compiler: clang, version: 15, build_type: Release, cppstd: 20, tsan: ON } -# 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 }} ${{ matrix.config.asan == 'ON' && 'ASAN' || '' }}${{ matrix.config.tsan == 'ON' && 'TSAN' || '' }})" -# steps: -# - uses: actions/checkout@v4 -# - 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: | -# scripts/ci_setup_clang.sh "${{ matrix.config.version }}" -# echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV -# 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_WARNINGS=ON \ -# -DSPDLOG_BUILD_BENCH=OFF \ -# -DSPDLOG_BUILD_TESTS=ON \ -# -DSPDLOG_SANITIZE_ADDRESS=${{ matrix.config.asan || 'OFF' }} \ -# -DSPDLOG_SANITIZE_ADDRESS=${{ matrix.config.asan || 'OFF' }} \ -# -DSPDLOG_SANITIZE_THREAD=${{ matrix.config.tsan || 'OFF' }} -# make -j 4 -# ctest -j 4 --output-on-failure -# -# # ----------------------------------------------------------------------- -# # OS X build matrix -# # ----------------------------------------------------------------------- -# build_osx: -# runs-on: macOS-latest -# name: "OS X Clang (C++17, Release)" -# steps: -# - uses: actions/checkout@v4 -# - name: Build -# run: | -# mkdir -p build && cd build -# cmake .. \ -# -DCMAKE_BUILD_TYPE=Release \ -# -DCMAKE_CXX_STANDARD=17 \ -# -DSPDLOG_BUILD_EXAMPLE=ON \ -# -DSPDLOG_BUILD_WARNINGS=ON \ -# -DSPDLOG_BUILD_BENCH=OFF \ -# -DSPDLOG_BUILD_TESTS=ON \ -# -DSPDLOG_SANITIZE_ADDRESS=OFF -# make -j 4 -# ctest -j 4 --output-on-failure +name: linux + +on: [push, pull_request] + +permissions: + contents: read + +jobs: + # ----------------------------------------------------------------------- + # Linux build matrix + # ----------------------------------------------------------------------- + build: + runs-on: ubuntu-latest + defaults: + run: + shell: bash + strategy: + fail-fast: false + matrix: + config: + - { 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: gcc, version: 12, build_type: Debug, cppstd: 20, asan: ON } + - { compiler: clang, version: 12, build_type: Debug, cppstd: 17 } + - { compiler: clang, version: 15, build_type: Release, cppstd: 20, tsan: ON } + 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 }} ${{ matrix.config.asan == 'ON' && 'ASAN' || '' }}${{ matrix.config.tsan == 'ON' && 'TSAN' || '' }})" + steps: + - uses: actions/checkout@v4 + - 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: | + scripts/ci_setup_clang.sh "${{ matrix.config.version }}" + echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV + 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_WARNINGS=ON \ + -DSPDLOG_BUILD_BENCH=OFF \ + -DSPDLOG_BUILD_TESTS=ON \ + -DSPDLOG_SANITIZE_ADDRESS=${{ matrix.config.asan || 'OFF' }} \ + -DSPDLOG_SANITIZE_ADDRESS=${{ matrix.config.asan || 'OFF' }} \ + -DSPDLOG_SANITIZE_THREAD=${{ matrix.config.tsan || 'OFF' }} + make -j 4 + ctest -j 4 --output-on-failure + + # ----------------------------------------------------------------------- + # OS X build matrix + # ----------------------------------------------------------------------- + build_osx: + runs-on: macOS-latest + name: "OS X Clang (C++17, Release)" + steps: + - uses: actions/checkout@v4 + - name: Build + run: | + mkdir -p build && cd build + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_STANDARD=17 \ + -DSPDLOG_BUILD_EXAMPLE=ON \ + -DSPDLOG_BUILD_WARNINGS=ON \ + -DSPDLOG_BUILD_BENCH=OFF \ + -DSPDLOG_BUILD_TESTS=ON \ + -DSPDLOG_SANITIZE_ADDRESS=OFF + make -j 4 + ctest -j 4 --output-on-failure diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 15fd265a7..fab57b861 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -1,26 +1,26 @@ -#name: macos -# -#on: [push, pull_request] -# -#permissions: -# contents: read -# -#jobs: -# build: -# runs-on: macOS-latest -# name: "macOS Clang (C++17, Release)" -# steps: -# - uses: actions/checkout@v4 -# - name: Build -# run: | -# mkdir -p build && cd build -# cmake .. \ -# -DCMAKE_BUILD_TYPE=Release \ -# -DCMAKE_CXX_STANDARD=17 \ -# -DSPDLOG_BUILD_EXAMPLE=ON \ -# -DSPDLOG_BUILD_WARNINGS=ON \ -# -DSPDLOG_BUILD_BENCH=OFF \ -# -DSPDLOG_BUILD_TESTS=ON \ -# -DSPDLOG_SANITIZE_ADDRESS=OFF -# make -j 4 -# ctest -j 4 --output-on-failure +name: macos + +on: [push, pull_request] + +permissions: + contents: read + +jobs: + build: + runs-on: macOS-latest + name: "macOS Clang (C++17, Release)" + steps: + - uses: actions/checkout@v4 + - name: Build + run: | + mkdir -p build && cd build + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_STANDARD=17 \ + -DSPDLOG_BUILD_EXAMPLE=ON \ + -DSPDLOG_BUILD_WARNINGS=ON \ + -DSPDLOG_BUILD_BENCH=OFF \ + -DSPDLOG_BUILD_TESTS=ON \ + -DSPDLOG_SANITIZE_ADDRESS=OFF + make -j 4 + ctest -j 4 --output-on-failure diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index d13ad51af..60c04e82b 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -21,24 +21,24 @@ jobs: 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 + - 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 @@ -73,62 +73,62 @@ jobs: run: ${{ github.workspace }}\build\bin\${{ matrix.config.BUILD_TYPE }}\spdlog-utests.exe -# # ----------------------------------------------------------------------- -# # MSVC 2019 build matrix -# # ----------------------------------------------------------------------- -# build_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 -# - 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: 20 -# -# 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_TESTS=ON ` -# -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: ${{ github.workspace }}\build\${{ matrix.config.BUILD_TYPE }}\spdlog-tests.exe + # ----------------------------------------------------------------------- + # MSVC 2019 build matrix + # ----------------------------------------------------------------------- + build_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 + - 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: 20 + + 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_TESTS=ON ` + -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\bin\${{ matrix.config.BUILD_TYPE }} + run: ${{ github.workspace }}\build\bin\${{ matrix.config.BUILD_TYPE }}\spdlog-utests.exe