Skip to content

Avoid redefinition error of low-level io functions on some compilers #22

Avoid redefinition error of low-level io functions on some compilers

Avoid redefinition error of low-level io functions on some compilers #22

Workflow file for this run

name: Test on Ubuntu 22.04
on:
pull_request:
push:
paths:
- '.github/actions/**'
- '.github/workflows/test_ubuntu22.yml'
- 'cmake/**'
- 'include/**'
- 'src/**'
- 'tests/**'
- 'CMakeLists.txt'
jobs:
build_linux:
runs-on: ubuntu-22.04
if: |
!contains(github.event.head_commit.message, '[test-windows]')
&& !contains(github.event.head_commit.message, '[test-macos]')
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
c_compiler: [gcc-9, gcc-10, gcc-11, gcc-12, clang-13, clang-14, clang-15]
bit7z_auto_format: [OFF, ON]
bit7z_regex_matching: [OFF, ON]
bit7z_link_libcpp: [OFF, ON]
bit7z_7zip_version: [16.02, 22.01, 23.01]
bit7z_build_for_p7zip: [OFF, ON]
include:
- c_compiler: gcc-9
cpp_compiler: g++-9
- c_compiler: gcc-10
cpp_compiler: g++-10
- c_compiler: gcc-11
cpp_compiler: g++-11
- c_compiler: gcc-12
cpp_compiler: g++-12
- c_compiler: clang-13
cpp_compiler: clang++-13
- c_compiler: clang-14
cpp_compiler: clang++-14
- c_compiler: clang-15
cpp_compiler: clang++-15
exclude:
- c_compiler: gcc-9
bit7z_link_libcpp: ON
- c_compiler: gcc-10
bit7z_link_libcpp: ON
- c_compiler: gcc-11
bit7z_link_libcpp: ON
- c_compiler: gcc-12
bit7z_link_libcpp: ON
- c_compiler: gcc-9
bit7z_7zip_version: 16.02
- c_compiler: gcc-10
bit7z_7zip_version: 16.02
- c_compiler: gcc-11
bit7z_7zip_version: 16.02
- c_compiler: clang-13
bit7z_7zip_version: 16.02
- c_compiler: clang-14
bit7z_7zip_version: 16.02
- bit7z_7zip_version: 16.02
bit7z_build_for_p7zip: OFF
- bit7z_7zip_version: 23.01
bit7z_build_for_p7zip: ON
- bit7z_7zip_version: 22.01
bit7z_build_for_p7zip: ON
name: |
Ubuntu, ${{ matrix.c_compiler }}, ${{ matrix.build_type }}, 7-Zip ${{ matrix.bit7z_7zip_version }}${{ (matrix.bit7z_auto_format == 'ON') && ', AUTO_FORMAT' || '' }}${{ (matrix.bit7z_regex_matching == 'ON') && ', REGEX_MATCHING' || '' }}${{ (matrix.bit7z_link_libcpp == 'ON') && ', LINK_LIBCPP' || '' }}${{ (matrix.bit7z_build_for_p7zip == 'ON') && ', BUILD_FOR_P7ZIP' || '' }}
steps:
- uses: actions/checkout@v4
- name: Fix missing libc++ and libc++abi packages for clang-13 compiler
shell: bash
if: ${{ matrix.bit7z_link_libcpp == 'ON' && contains(matrix.c_compiler, 'clang-13') }}
run: sudo apt-get purge libc++-14-dev libc++abi-14-dev -y && sudo apt-get install libc++-13-dev libc++abi-13-dev -y
- name: Fix missing libc++ and libc++abi packages for clang-15 compiler
shell: bash
if: ${{ matrix.bit7z_link_libcpp == 'ON' && contains(matrix.c_compiler, 'clang-15') }}
run: sudo apt-get purge libc++-14-dev libc++abi-14-dev -y && sudo apt-get install libc++-15-dev libc++abi-15-dev -y
- name: Building and testing bit7z
uses: ./.github/actions/test_action
with:
c_compiler: ${{ matrix.c_compiler }}
cpp_compiler: ${{ matrix.cpp_compiler }}
sevenzip_version: ${{ matrix.bit7z_7zip_version }}
build_type: ${{ matrix.build_type }}
build_flags: |
-DBIT7Z_TESTS_USE_SYSTEM_7ZIP=${{ matrix.bit7z_build_for_p7zip }} -DBIT7Z_BUILD_FOR_P7ZIP=${{ matrix.bit7z_build_for_p7zip }} -DBIT7Z_AUTO_FORMAT=${{ matrix.bit7z_auto_format }} -DBIT7Z_REGEX_MATCHING=${{ matrix.bit7z_regex_matching }} -DBIT7Z_LINK_LIBCPP=${{ matrix.bit7z_link_libcpp }}