- name: Ubuntu 18.04 GCC
os: ubuntu-18.04
compiler: gcc
+ cxx-compiler: g++
- name: Ubuntu GCC ASAN
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_SANITIZER=Address
codecov: ubuntu_gcc
- name: Ubuntu GCC Benchmark
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_BENCHMARKS=ON
codecov: ubuntu_gcc_benchmark
- name: Ubuntu GCC Symbol Prefix
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DZLIB_SYMBOL_PREFIX=zTest_
codecov: ubuntu_gcc_sprefix
- name: Ubuntu GCC Compat Symbol Prefix
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DZLIB_COMPAT=ON -DZLIB_SYMBOL_PREFIX=zTest_
codecov: ubuntu_gcc_compat_sprefix
- name: Ubuntu GCC OSB -O1 No Unaligned64 UBSAN
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_UNALIGNED=ON -DUNALIGNED64_OK=OFF -DWITH_SANITIZER=Undefined
build-dir: ../build
build-src-dir: ../zlib-ng
- name: Ubuntu GCC -O3 No Unaligned
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_UNALIGNED=OFF
codecov: ubuntu_gcc_o3
cflags: -O3
- name: Ubuntu GCC No CTZLL
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_OPTIM=OFF -DHAVE_BUILTIN_CTZLL=OFF
codecov: ubuntu_gcc_no_ctzll
- name: Ubuntu GCC No CTZ
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_OPTIM=OFF -DHAVE_BUILTIN_CTZLL=OFF -DHAVE_BUILTIN_CTZ=OFF
codecov: ubuntu_gcc_no_ctz
- name: Ubuntu GCC Link Zlib
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DZLIB_DUAL_LINK=ON
- name: Ubuntu GCC No AVX2 UBSAN
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_AVX2=OFF -DWITH_SANITIZER=Undefined
codecov: ubuntu_gcc_no_avx2
- name: Ubuntu GCC No SSE2 UBSAN
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_SSE2=OFF -DWITH_SANITIZER=Undefined
codecov: ubuntu_gcc_no_sse2
- name: Ubuntu GCC No SSE4 UBSAN
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_SSE4=OFF -DWITH_SANITIZER=Undefined
codecov: ubuntu_gcc_no_sse4
- name: Ubuntu GCC No PCLMULQDQ UBSAN
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_PCLMULQDQ=OFF -DWITH_SANITIZER=Undefined
codecov: ubuntu_gcc_no_pclmulqdq
- name: Ubuntu GCC Compat No Opt ASAN
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Address
codecov: ubuntu_gcc_compat_no_opt
cflags: -DNOT_TWEAK_COMPILER
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm.cmake -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross
+ packages: qemu qemu-user gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libc-dev-armel-cross
codecov: ubuntu_gcc_armsf
- name: Ubuntu GCC ARM SF Compat No Opt UBSAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm.cmake -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Undefined
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross
+ packages: qemu qemu-user gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libc-dev-armel-cross
codecov: ubuntu_gcc_armsf_compat_no_opt
- name: Ubuntu GCC ARM HF ASAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
+ packages: qemu qemu-user gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc-dev-armel-cross
codecov: ubuntu_gcc_armhf
- name: Ubuntu GCC ARM HF No ACLE ASAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_ACLE=OFF -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
+ packages: qemu qemu-user gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc-dev-armel-cross
codecov: ubuntu_gcc_armhf_no_acle
- name: Ubuntu GCC ARM HF No NEON ASAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_NEON=OFF -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
+ packages: qemu qemu-user gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc-dev-armel-cross
codecov: ubuntu_gcc_armhf_no_neon
- name: Ubuntu GCC ARM HF Compat No Opt UBSAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Undefined
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
+ packages: qemu qemu-user gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc-dev-armel-cross
codecov: ubuntu_gcc_armhf_compat_no_opt
- name: Ubuntu GCC AARCH64 ASAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
+ packages: qemu qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc-dev-arm64-cross
codecov: ubuntu_gcc_aarch64
- name: Ubuntu GCC AARCH64 No ACLE UBSAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DWITH_ACLE=OFF -DWITH_SANITIZER=Undefined
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
+ packages: qemu qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc-dev-arm64-cross
codecov: ubuntu_gcc_aarch64_no_acle
- name: Ubuntu GCC AARCH64 No NEON UBSAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DWITH_NEON=OFF -DWITH_SANITIZER=Undefined
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
+ packages: qemu qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc-dev-arm64-cross
codecov: ubuntu_gcc_aarch64_no_neon
- name: Ubuntu GCC AARCH64 Compat No Opt UBSAN
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Undefined
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
+ packages: qemu qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc-dev-arm64-cross
codecov: ubuntu_gcc_aarch64_compat_no_opt
- name: Ubuntu GCC PPC
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross
+ packages: qemu qemu-user gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc-dev-powerpc-cross
ldflags: -static
codecov: ubuntu_gcc_ppc
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake -DWITH_POWER8=OFF
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross
+ packages: qemu qemu-user gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc-dev-powerpc-cross
codecov: ubuntu_gcc_ppc_no_power8
- name: Ubuntu GCC PPC64
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64.cmake
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-powerpc64-linux-gnu libc-dev-ppc64-cross
+ packages: qemu qemu-user gcc-powerpc64-linux-gnu g++-powerpc64-linux-gnu libc-dev-ppc64-cross
ldflags: -static
codecov: ubuntu_gcc_ppc64
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le.cmake
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-powerpc64le-linux-gnu libc-dev-ppc64el-cross
+ packages: qemu qemu-user gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu libc-dev-ppc64el-cross
codecov: ubuntu_gcc_ppc64le
- name: Ubuntu GCC SPARC64
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-sparc64.cmake
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-sparc64-linux-gnu libc-dev-sparc64-cross
+ packages: qemu qemu-user gcc-sparc64-linux-gnu g++-sparc64-linux-gnu libc-dev-sparc64-cross
ldflags: -static
codecov: ubuntu_gcc_sparc64
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross
+ packages: qemu qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross
ldflags: -static
codecov: ubuntu_gcc_s390x
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DWITH_CRC32_VX=OFF -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
- packages: qemu qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross
+ packages: qemu qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross
ldflags: -static
codecov: ubuntu_gcc_s390x_no_crc32
- name: Ubuntu GCC S390X DFLTCC ASAN
os: z15
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON -DWITH_SANITIZER=Address
asan-options: detect_leaks=0
codecov: ubuntu_gcc_s390x_dfltcc
- name: Ubuntu GCC S390X DFLTCC Compat UBSAN
os: z15
compiler: gcc
+ cxx-compiler: g++
cmake-args: -DZLIB_COMPAT=ON -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON -DWITH_SANITIZER=Undefined
asan-options: detect_leaks=0
codecov: ubuntu_gcc_s390x_dfltcc_compat
- name: Ubuntu MinGW i686
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mingw-i686.cmake
- packages: wine32 gcc-mingw-w64
+ packages: wine32 gcc-mingw-w64-i686 g++-mingw-w64-i686
codecov: ubuntu_gcc_mingw_i686
# Limit parallel test jobs to prevent wine errors
parallels-jobs: 1
- name: Ubuntu MinGW x86_64
os: ubuntu-latest
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mingw-x86_64.cmake
- packages: wine-stable gcc-mingw-w64
+ packages: wine-stable gcc-mingw-w64 g++-mingw-w64
codecov: ubuntu_gcc_mingw_x86_64
# Limit parallel test jobs to prevent wine errors
parallels-jobs: 1
- name: Ubuntu 18.04 Clang
os: ubuntu-18.04
compiler: clang-6.0
+ cxx-compiler: clang++-6.0
packages: clang-6.0
- name: Ubuntu Clang
os: ubuntu-latest
compiler: clang-11
+ cxx-compiler: clang++-11
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
codecov: ubuntu_clang
- name: Ubuntu Clang Inflate Strict
os: ubuntu-latest
compiler: clang-11
+ cxx-compiler: clang++-11
cmake-args: -DWITH_INFLATE_STRICT=ON
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
- name: Ubuntu Clang Inflate Allow Invalid Dist
os: ubuntu-latest
compiler: clang-11
+ cxx-compiler: clang++-11
cmake-args: -DWITH_INFLATE_ALLOW_INVALID_DIST=ON
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
- name: Ubuntu Clang Reduced Memory
os: ubuntu-latest
compiler: clang-11
+ cxx-compiler: clang++-11
cmake-args: -DWITH_REDUCED_MEM=ON
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
- name: Ubuntu Clang Memory Map
os: ubuntu-latest
compiler: clang-11
+ cxx-compiler: clang++-11
cflags: -DUSE_MMAP
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
- name: Ubuntu Clang Debug
os: ubuntu-latest
compiler: clang-11
+ cxx-compiler: clang++-11
packages: llvm-11-tools
gcov-exec: llvm-cov-11 gcov
codecov: ubuntu_clang_debug
- name: Ubuntu Clang MSAN
os: ubuntu-latest
compiler: clang-11
+ cxx-compiler: clang++-11
cmake-args: -GNinja -DWITH_SANITIZER=Memory
packages: ninja-build llvm-11-tools
gcov-exec: llvm-cov-11 gcov
- name: Windows GCC
os: windows-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -G Ninja
codecov: win64_gcc
- name: Windows GCC Compat No Opt
os: windows-latest
compiler: gcc
+ cxx-compiler: g++
cmake-args: -G Ninja -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF
codecov: win64_gcc_compat_no_opt
- name: macOS Clang ASAN
os: macos-latest
compiler: clang
+ cxx-compiler: clang++
cmake-args: -DWITH_SANITIZER=Address
codecov: macos_clang
- name: macOS GCC UBSAN
os: macos-latest
compiler: gcc-10
+ cxx-compiler: g++-10
cmake-args: -DWITH_SANITIZER=Undefined
packages: gcc@10
gcov-exec: gcov-10
cmake ${{ matrix.build-src-dir || '.' }} ${{ matrix.cmake-args }} -DCMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} -DBUILD_SHARED_LIBS=OFF -DWITH_FUZZERS=ON ${{ matrix.codecov && '-DWITH_CODE_COVERAGE=ON' }} -DWITH_MAINTAINER_WARNINGS=ON
env:
CC: ${{ matrix.compiler }}
+ CXX: ${{ matrix.cxx-compiler }}
CFLAGS: ${{ matrix.cflags }}
LDFLAGS: ${{ matrix.ldflags }}
CI: true
- name: Ubuntu GCC
os: ubuntu-latest
compiler: gcc
+ cxx-compiler: g++
- name: Ubuntu GCC -m32
os: ubuntu-latest
compiler: gcc
- packages: gcc-multilib
- cmake-args: -DCMAKE_C_FLAGS=-m32
+ cxx-compiler: g++
+ packages: gcc-multilib g++-multilib
+ cmake-args: -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32
cflags: -m32
+ cxxflags: -m32
ldflags: -m32
- name: Ubuntu GCC ARM HF
os: ubuntu-latest
chost: arm-linux-gnueabihf
compiler: arm-linux-gnueabihf-gcc
+ cxx-compiler: g++-arm-linux-gnueabihf
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake
- packages: qemu gcc-arm-linux-gnueabihf libc6-dev-armhf-cross
+ packages: qemu gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-dev-armhf-cross
- name: Ubuntu GCC AARCH64
os: ubuntu-latest
chost: aarch64-linux-gnu
compiler: aarch64-linux-gnu-gcc
+ cxx-compiler: g++-aarch64-linux-gnu
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake
- packages: qemu gcc-aarch64-linux-gnu libc6-dev-arm64-cross
+ packages: qemu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc6-dev-arm64-cross
- name: Ubuntu GCC PPC
os: ubuntu-latest
chost: powerpc-linux-gnu
compiler: powerpc-linux-gnu-gcc
+ cxx-compiler: g++-powerpc-linux-gnu
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake
- packages: qemu gcc-powerpc-linux-gnu libc6-dev-powerpc-cross
+ packages: qemu gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc6-dev-powerpc-cross
- name: Ubuntu GCC PPC64LE
os: ubuntu-latest
chost: powerpc64le-linux-gnu
compiler: powerpc64le-linux-gnu-gcc
+ cxx-compiler: g++-powerpc64le-linux-gnu
cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le.cmake
- packages: qemu gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross
+ packages: qemu gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu libc6-dev-ppc64el-cross
- name: macOS Clang
os: macOS-latest
compiler: clang
+ cxx-compiler: clang++
- name: macOS Clang Native
os: macOS-latest
compiler: clang
+ cxx-compiler: clang++
cmake-args: -DWITH_NATIVE_INSTRUCTIONS=ON
configure-args: --native
- name: macOS Clang Symbol Prefix
os: macOS-latest
compiler: clang
+ cxx-compiler: clang++
cmake-args: -DZLIB_SYMBOL_PREFIX=zTest_
configure-args: --sprefix=zTest_
sh test/pkgcheck.sh
env:
CC: ${{ matrix.compiler }}
+ CXX: ${{ matrix.cxx-compiler }}
CFLAGS: ${{ matrix.cflags }}
+ CXXFLAGS: ${{ matrix.cxxflags }}
CHOST: ${{ matrix.chost }}
CMAKE_ARGS: ${{ matrix.cmake-args }}
CONFIGURE_ARGS: ${{ matrix.configure-args }}
sh test/abicheck.sh --refresh_if
env:
CC: ${{ matrix.compiler }}
+ CXX: ${{ matrix.cxx-compiler }}
CFLAGS: ${{ matrix.cflags }}
+ CXXFLAGS: ${{ matrix.cxxflags }}
CHOST: ${{ matrix.chost }}
CMAKE_ARGS: ${{ matrix.cmake-args }}
CONFIGURE_ARGS: ${{ matrix.configure-args }}
sh test/abicheck.sh --zlib-compat --refresh_if
env:
CC: ${{ matrix.compiler }}
+ CXX: ${{ matrix.cxx-compiler }}
CFLAGS: ${{ matrix.cflags }}
+ CXXFLAGS: ${{ matrix.cxxflags }}
CHOST: ${{ matrix.chost }}
CMAKE_ARGS: ${{ matrix.cmake-args }}
CONFIGURE_ARGS: ${{ matrix.configure-args }}