Add explicit FMT_INSTALL setting #93
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
| # See runners details: | |
| # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#preinstalled-software | |
| name: CI | |
| on: | |
| push: | |
| branches: ["master", "0.7-dev"] | |
| pull_request: | |
| jobs: | |
| Build-Windows: | |
| # The type of runner that the job will run on | |
| name: ${{ matrix.config.name }} (${{ matrix.build_type }}, ${{ matrix.config.cxx }}, C++${{ matrix.cppstd }}) | |
| runs-on: ${{ matrix.config.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - name: "Windows Latest MSVC" | |
| # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md | |
| os: windows-latest | |
| cc: "cl" | |
| cxx: "cl" | |
| generator: "Visual Studio 17 2022" | |
| build_type: | |
| - Release | |
| - Debug | |
| cppstd: | |
| - 17 | |
| - 20 | |
| env: | |
| CXX: ${{ matrix.config.cxx }} | |
| RESTINIO_BUILD_DIR: _build_${{ matrix.config.cxx }}_cppstd${{ matrix.cppstd }}_${{ matrix.build_type }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Print env | |
| run: | | |
| echo github.event.action: ${{ github.event.action }} | |
| echo github.event_name: ${{ github.event_name }} | |
| - name: Install dependencies | |
| run: | | |
| gem install Mxx_ru | |
| - name: Configure | |
| shell: bash | |
| run: | | |
| mxxruexternals | |
| cd dev | |
| cmake \ | |
| -B $RESTINIO_BUILD_DIR \ | |
| -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
| -DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.cppstd }} \ | |
| -DRESTINIO_TEST_SUFFIX=" [cpp${{ matrix.cppstd }}_${{ matrix.build_type }}]" \ | |
| -G "${{ matrix.config.generator }}" | |
| - name: Build | |
| working-directory: ./dev | |
| shell: bash | |
| run: | | |
| cmake \ | |
| --build $RESTINIO_BUILD_DIR \ | |
| --config ${{ matrix.build_type }} \ | |
| --parallel ${NUMBER_OF_PROCESSORS} \ | |
| --verbose | |
| - name: Test | |
| shell: bash | |
| working-directory: ./dev | |
| run: | | |
| ctest \ | |
| -T test \ | |
| -C ${{ matrix.build_type }} \ | |
| --test-dir $RESTINIO_BUILD_DIR \ | |
| --output-on-failure \ | |
| --no-compress-output | |
| Build-Linux: | |
| # The type of runner that the job will run on | |
| name: Ubuntu-24.04 (${{ matrix.build_settings.toolset }}-${{ matrix.build_settings.toolset_version }}, ${{ matrix.build_type }}, C++${{ matrix.build_settings.cppstd }}, ${{matrix.build_settings.asio_source}} asio) | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build_settings: | |
| - toolset: gcc | |
| toolset_version: 13 | |
| cppstd: 17 | |
| asio_source: standalone | |
| - toolset: gcc | |
| toolset_version: 13 | |
| cppstd: 20 | |
| asio_source: standalone | |
| - toolset: gcc | |
| toolset_version: 13 | |
| cppstd: 20 | |
| asio_source: boost | |
| - toolset: gcc | |
| toolset_version: 13 | |
| cppstd: 23 | |
| asio_source: standalone | |
| - toolset: gcc | |
| toolset_version: 13 | |
| cppstd: 23 | |
| asio_source: standalone | |
| - toolset: gcc | |
| toolset_version: 13 | |
| cppstd: 23 | |
| asio_source: boost | |
| - toolset: clang | |
| toolset_version: 18 | |
| cppstd: 17 | |
| asio_source: standalone | |
| - toolset: clang | |
| toolset_version: 18 | |
| cppstd: 20 | |
| asio_source: standalone | |
| build_type: | |
| - Release | |
| - Debug | |
| env: | |
| RESTINIO_BUILD_TAG: ${{ matrix.build_settings.toolset }}-${{ matrix.build_settings.toolset_version }}_cpp${{ matrix.build_settings.cppstd }}_${{ matrix.build_type }}_${{matrix.build_settings.asio_source}}_asio | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prepare env | |
| run: | | |
| echo github.event.action: ${{ github.event.action }} | |
| echo github.event_name: ${{ github.event_name }} | |
| echo "RESTINIO_BUILD_DIR=_build_${RESTINIO_BUILD_TAG}" >> $GITHUB_ENV | |
| echo "CC=${{ matrix.build_settings.toolset }}-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV | |
| if [ "${{ matrix.build_settings.toolset }}" == "gcc" ]; then | |
| echo "CXX=g++-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV | |
| echo "AR=gcc-ar-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV | |
| else | |
| echo "CXX=clang++-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV | |
| echo "AR=llvm-ar-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV | |
| fi | |
| - name: Install dependencies | |
| run: | | |
| sudo gem install Mxx_ru | |
| if [ "${{ matrix.build_settings.asio_source }}" == "boost-system-package" ]; then | |
| sudo apt-get update && sudo apt-get install -y libboost-all-dev | |
| fi | |
| mxxruexternals | |
| - name: Configure | |
| if: ${{ matrix.build_settings.asio_source == 'standalone' }} | |
| shell: bash | |
| run: | | |
| cd dev | |
| cmake \ | |
| -B ${RESTINIO_BUILD_DIR} \ | |
| -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
| -DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.build_settings.cppstd }} \ | |
| -DRESTINIO_TEST_SUFFIX=" [${RESTINIO_BUILD_TAG}]" | |
| - name: Obtain Boost | |
| if: ${{ matrix.build_settings.asio_source == 'boost' }} | |
| uses: MarkusJx/[email protected] | |
| id: install-boost | |
| with: | |
| boost_version: 1.87.0 | |
| boost_install_dir: ${{github.workspace}}/local_boost | |
| toolset: ${{ matrix.build_settings.toolset }} | |
| platform_version: 24.04 | |
| - name: Configure | |
| if: ${{ matrix.build_settings.asio_source == 'boost' }} | |
| shell: bash | |
| run: | | |
| cd dev | |
| cmake \ | |
| -B ${RESTINIO_BUILD_DIR} \ | |
| -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
| -DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.build_settings.cppstd }} \ | |
| -DRESTINIO_ASIO_SOURCE=boost \ | |
| -DBOOST_ROOT=${{ steps.install-boost.outputs.BOOST_ROOT }} \ | |
| -DRESTINIO_TEST_SUFFIX=" [${RESTINIO_BUILD_TAG}]" | |
| - name: Configure | |
| if: ${{ matrix.build_settings.asio_source == 'boost-system-package' }} | |
| shell: bash | |
| run: | | |
| cd dev | |
| cmake \ | |
| -B ${RESTINIO_BUILD_DIR} \ | |
| -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
| -DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.build_settings.cppstd }} \ | |
| -DRESTINIO_ASIO_SOURCE=boost \ | |
| -DRESTINIO_TEST_SUFFIX=" [${RESTINIO_BUILD_TAG}]" | |
| - name: Build | |
| working-directory: ./dev | |
| shell: bash | |
| run: | | |
| cmake \ | |
| --build $RESTINIO_BUILD_DIR \ | |
| --parallel $(nproc) \ | |
| --verbose | |
| - name: Test | |
| shell: bash | |
| working-directory: ./dev | |
| run: | | |
| ctest \ | |
| -T test \ | |
| --test-dir $RESTINIO_BUILD_DIR \ | |
| --output-on-failure \ | |
| --no-compress-output | |
| Build-Macos: | |
| # The type of runner that the job will run on | |
| name: macos-15 (${{ matrix.build_type }}, C++${{ matrix.cppstd }}) | |
| runs-on: macos-15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cppstd: | |
| - 17 | |
| - 20 | |
| build_type: | |
| - Release | |
| - Debug | |
| env: | |
| RESTINIO_BUILD_DIR: _build_cpp${{ matrix.cppstd }}_${{ matrix.build_type }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Print env | |
| run: | | |
| echo github.event.action: ${{ github.event.action }} | |
| echo github.event_name: ${{ github.event_name }} | |
| - name: Install dependencies | |
| run: | | |
| gem install Mxx_ru | |
| - name: Configure | |
| shell: bash | |
| run: | | |
| mxxruexternals | |
| cd dev | |
| cmake \ | |
| -B ${RESTINIO_BUILD_DIR} \ | |
| -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
| -DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.cppstd }} \ | |
| -DRESTINIO_TEST_SUFFIX=" [cpp${{ matrix.cppstd }}_${{ matrix.build_type }}]" | |
| - name: Build | |
| working-directory: ./dev | |
| shell: bash | |
| run: | | |
| cmake \ | |
| --build $RESTINIO_BUILD_DIR \ | |
| --parallel $(sysctl -n hw.ncpu) \ | |
| --verbose | |
| - name: Test | |
| shell: bash | |
| working-directory: ./dev | |
| run: | | |
| ctest \ | |
| -T test \ | |
| --test-dir $RESTINIO_BUILD_DIR \ | |
| --output-on-failure \ | |
| --no-compress-output |