diff options
author | Jay Berkenbilt <ejb@ql.org> | 2023-12-16 17:12:52 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2023-12-16 17:38:00 +0100 |
commit | 762f232146f3edc234c898b48e9daacf72ee9577 (patch) | |
tree | 60a6f31f14b9b125561c5fa3c15a5171c9afeece | |
parent | db4ec7a9db7a0d87d459d7dc80f9a2afb4cbeadb (diff) | |
download | qpdf-762f232146f3edc234c898b48e9daacf72ee9577.tar.zst |
Add CI build for next C++ version
-rw-r--r-- | .github/workflows/main.yml | 8 | ||||
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rwxr-xr-x | build-scripts/test-c++-next | 14 |
3 files changed, 28 insertions, 1 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7646a3d2..44f6b142 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -147,3 +147,11 @@ jobs: - uses: actions/checkout@v3 - name: 'Unsigned Char Tests' run: build-scripts/test-unsigned-char + CxxNext: + runs-on: ubuntu-latest + # Build after Fuzzers to save concurrent runners + needs: Fuzzers + steps: + - uses: actions/checkout@v3 + - name: 'Build with Next C++ standard' + run: build-scripts/test-c++-next diff --git a/CMakeLists.txt b/CMakeLists.txt index aafca4f8..707db439 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,6 +106,7 @@ option(INSTALL_CMAKE_PACKAGE "Install cmake package files" ON) option(INSTALL_EXAMPLES "Install example files" ON) option(FUTURE "Include ABI-breaking changes CONSIDERED for the next major release" OFF) +option(CXX_NEXT "Build with next C++ standard version" OFF) # *** END OPTIONS *** @@ -166,7 +167,11 @@ Please build with cmake in a subdirectory, e.g. Please remove CMakeCache.txt and the CMakeFiles directories.") endif() -set(CMAKE_CXX_STANDARD 17) +if(CXX_NEXT) + set(CMAKE_CXX_STANDARD 20) +else() + set(CMAKE_CXX_STANDARD 17) +endif() set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_C_VISIBILITY_PRESET hidden) diff --git a/build-scripts/test-c++-next b/build-scripts/test-c++-next new file mode 100755 index 00000000..343a5a4d --- /dev/null +++ b/build-scripts/test-c++-next @@ -0,0 +1,14 @@ +#!/bin/bash +set -e +sudo apt-get update +sudo apt-get -y install \ + build-essential cmake \ + zlib1g-dev libjpeg-dev libgnutls28-dev libssl-dev +cmake -S . -B build \ + -DCXX_NEXT=ON \ + -DCI_MODE=1 -DBUILD_STATIC_LIBS=0 -DCMAKE_BUILD_TYPE=Release \ + -DREQUIRE_CRYPTO_OPENSSL=1 -DREQUIRE_CRYPTO_GNUTLS=1 \ + -DENABLE_QTC=1 +cmake --build build --verbose -j$(nproc) -- -k +cd build +ctest --verbose |