fail-fast: false
matrix:
config:
- - os: ubuntu-18.04
- compiler: gcc
- version: "6"
-
- os: ubuntu-18.04
compiler: gcc
version: "7"
-cmake_minimum_required(VERSION 3.10)
+cmake_minimum_required(VERSION 3.15)
-if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.15)
- cmake_policy(SET CMP0091 NEW) # Needed by CMAKE_MSVC_RUNTIME_LIBRARY
-endif()
+cmake_policy(SET CMP0091 NEW) # Needed by CMAKE_MSVC_RUNTIME_LIBRARY
project(ccache LANGUAGES C CXX ASM ASM_MASM)
if(MSVC)
endif()
set(CMAKE_PROJECT_DESCRIPTION "a fast C/C++ compiler cache")
-if(MSVC)
- set(CMAKE_CXX_STANDARD 17) # Need support for std::filesystem
-else()
- set(CMAKE_CXX_STANDARD 14)
-endif()
+set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
-q
--enable=all
--force
- --std=c++14
+ --std=c++17
-I ${CMAKE_SOURCE_DIR}
--template="cppcheck: warning: {id}:{file}:{line}: {message}"
-i src/third_party)
To build ccache you need:
-- CMake 3.10 or newer.
-- A C++14 compiler. See [Supported platforms, compilers and
+- CMake 3.15 or newer.
+- A C++17 compiler. See [Supported platforms, compilers and
languages](https://ccache.dev/platform-compiler-language-support.html) for
details.
- A C99 compiler.
-FROM alpine:3.14
+FROM alpine:3.11
RUN apk add --no-cache \
bash \
-FROM alpine:3.8
+FROM alpine:3.15
RUN apk add --no-cache \
bash \
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
&& yum install -y centos-release-scl \
&& yum install -y \
- asciidoctor \
autoconf \
bash \
ccache \
clang \
cmake3 \
- devtoolset-8 \
+ devtoolset-11 \
elfutils \
gcc \
gcc-c++ \
&& cp /usr/bin/cmake3 /usr/bin/cmake \
&& cp /usr/bin/ctest3 /usr/bin/ctest
-ENTRYPOINT ["scl", "enable", "devtoolset-8", "--"]
+ENTRYPOINT ["scl", "enable", "devtoolset-11", "--"]
+++ /dev/null
-FROM centos:8
-
-# also run update due to https://bugs.centos.org/view.php?id=18212
-RUN dnf install -y epel-release \
- && dnf update -y \
- && dnf install -y \
- autoconf \
- bash \
- ccache \
- clang \
- cmake \
- diffutils \
- elfutils \
- gcc \
- gcc-c++ \
- hiredis-devel \
- libzstd-devel \
- make \
- python3 \
- redis \
- && dnf clean all
+++ /dev/null
-FROM debian:10
-
-RUN apt-get update \
- && apt-get install -y --no-install-recommends \
- bash \
- build-essential \
- ccache \
- clang \
- cmake \
- elfutils \
- gcc-multilib \
- libhiredis-dev \
- libzstd-dev \
- python3 \
- redis-server \
- redis-tools \
- && rm -rf /var/lib/apt/lists/*
-
-# Redirect all compilers to ccache.
-RUN for t in gcc g++ cc c++ clang clang++; do ln -vs /usr/bin/ccache /usr/local/bin/$t; done
-FROM fedora:32
+FROM fedora:36
RUN dnf install -y \
autoconf \
build-essential \
ccache \
clang \
- cmake \
docbook-xml \
docbook-xsl \
elfutils \
gcc-multilib \
+ gpg \
libhiredis-dev \
libzstd-dev \
python3 \
redis-server \
redis-tools \
+ wget \
+ && wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc | gpg --dearmor - >/usr/share/keyrings/kitware-archive-keyring.gpg \
+ && echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' >/etc/apt/sources.list.d/kitware.list \
+ && apt-get update \
+ && apt-get install -y --no-install-recommends cmake \
&& rm -rf /var/lib/apt/lists/*
# Redirect all compilers to ccache.
# NAME CC CXX TEST_CC CMAKE_PARAMS
-build debian-10 gcc g++ gcc
-build debian-10 clang clang++ clang
-
build debian-11 gcc g++ gcc
build debian-11 clang clang++ clang
build ubuntu-20.04 gcc g++ gcc
build ubuntu-20.04 clang clang++ clang
-build centos-7 gcc g++ gcc -DWARNINGS_AS_ERRORS=false -DREDIS_STORAGE_BACKEND=OFF
-build centos-7 gcc g++ clang -DWARNINGS_AS_ERRORS=false -DREDIS_STORAGE_BACKEND=OFF
-
-build centos-8 gcc g++ gcc
-build centos-8 clang clang++ clang
+build centos-7 gcc g++ gcc -DHIREDIS_FROM_INTERNET=ON
+build centos-7 gcc g++ clang -DHIREDIS_FROM_INTERNET=ON
-build fedora-32 gcc g++ gcc
-build fedora-32 clang clang++ clang
+build fedora-36 gcc g++ gcc
+build fedora-36 clang clang++ clang
-build alpine-3.8 gcc g++ gcc
-build alpine-3.8 gcc g++ clang
+build alpine-3.11 gcc g++ gcc
+build alpine-3.11 gcc g++ clang
-build alpine-3.14 gcc g++ gcc
-build alpine-3.14 clang clang++ clang
+build alpine-3.15 gcc g++ gcc
+build alpine-3.15 clang clang++ clang
-readability-qualified-auto,
-readability-redundant-declaration,
performance-*,
+ -performance-no-automatic-move,
-performance-unnecessary-value-param,
modernize-*,
-modernize-avoid-c-arrays,
+ -modernize-concat-nested-namespaces,
-modernize-pass-by-value,
-modernize-return-braced-init-list,
-modernize-use-auto,
-modernize-use-default-member-init,
+ -modernize-use-nodiscard,
-modernize-use-trailing-return-type,
cppcoreguidelines-*,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-// Copyright (C) 2020-2021 Joel Rosdahl and other contributors
+// Copyright (C) 2020-2022 Joel Rosdahl and other contributors
//
// See doc/AUTHORS.adoc for a complete list of contributors.
//
{
#ifndef _WIN32
if (m_saved_umask) {
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635
+# if defined(__GNUC__) && !defined(__clang__)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+# endif
umask(*m_saved_umask);
+# if defined(__GNUC__) && !defined(__clang__)
+# pragma GCC diagnostic pop
+# endif
}
#endif
}