diff options
| author | Leitwolf | 2026-10-31 17:18:21 +0300 |
|---|---|---|
| committer | GitHub | 2026-10-31 17:18:21 +0300 |
| commit | 326ea0c0213aeecb6b984bba3dabb0ebad97679e (patch) | |
| tree | 5cec698f0bc0b8a60f45e866fb40f2fd8a358bd1 /docs | |
| parent | 6a42cdf6461b2577106ef094d6f98025554b6077 (diff) | |
| parent | afe91797e9d50cd4712d3694a2e5fedfc0b966b1 (diff) | |
| download | catch3-326ea0c0213aeecb6b984bba3dabb0ebad97679e.tar.gz | |
Merge pull request #22 from Progmasoft/build/cpp17
Build Catch3 as C++17
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/Readme.md | 2 | ||||
| -rw-r--r-- | docs/cmake-integration.md | 4 | ||||
| -rw-r--r-- | docs/contributing.md | 4 | ||||
| -rw-r--r-- | docs/faq.md | 2 | ||||
| -rw-r--r-- | docs/progmasoft-catch3.md | 6 | ||||
| -rw-r--r-- | docs/progmasoft-properties.md | 2 | ||||
| -rw-r--r-- | docs/why-catch3.md | 4 |
7 files changed, 12 insertions, 12 deletions
diff --git a/docs/Readme.md b/docs/Readme.md index 18bdf927..3da1a8ca 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -2,7 +2,7 @@ # Catch3 documentation Catch3 keeps Catch2's API for writing tests, runs them with -[its own runner](progmasoft-runner.md#top) and adds Progmasoft's C++20 +[its own runner](progmasoft-runner.md#top) and adds Progmasoft's C++17 extensions. Start with the [tutorial](tutorial.md#top), then read [the runner](progmasoft-runner.md#top), [what Catch3 adds](progmasoft-catch3.md), [native property testing](progmasoft-properties.md), [the roadmap](progmasoft-roadmap.md) and diff --git a/docs/cmake-integration.md b/docs/cmake-integration.md index 01c9905a..c6e3771c 100644 --- a/docs/cmake-integration.md +++ b/docs/cmake-integration.md @@ -16,8 +16,8 @@ Catch3's CMake package is `Catch3`. It exports two targets: 1. `Catch3::Catch3`, the library: the Catch2-compatible engine, the Catch3 - runner, property testing and snapshots. It is built as C++20; code that - includes only the engine's headers needs C++14. + runner, property testing and snapshots. It is C++17, and its headers + work in C++17 and later. 2. `Catch3::Catch3WithMain`, the library with the default `main`. `Catch3.cmake` registers each `TEST_CASE` with CTest. diff --git a/docs/contributing.md b/docs/contributing.md index 05c1f415..82e82675 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -62,13 +62,13 @@ distribution with `python tools/scripts/generateAmalgamatedFiles.py`. what Catch3 promises to keep: code that compiles against Catch2's headers must keep compiling. It stays under the Boost Software License 1.0, keeps the `Catch2 Authors` header and follows the style of the surrounding Catch2 code. -Code that includes only its headers needs C++14. +Code that includes its headers needs C++17 or later. `src/Progmasoft` holds what Progmasoft adds: the runner, the results model, property testing and snapshots. It is licensed `MPL-2.0 WITH AdditionRef-Progmasoft-Exception-1.1`, follows the [Progmasoft C++ Style](https://github.com/Progmasoft/progmasoft-cpp), is -C++20, reports recoverable errors with `Expected` rather than exceptions, and +C++17, reports recoverable errors with `Expected` rather than exceptions, and is formatted with the `.clang-format` beside it. `tools/scripts/checkLicense.py` checks that every source file carries the diff --git a/docs/faq.md b/docs/faq.md index 1ae93bca..63ada4e2 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -41,7 +41,7 @@ as needed later. The bundled Catch2-compatible engine provides no ABI stability guarantee. Its C++ interfaces should be compiled with a consistent compiler and build -configuration. The Progmasoft C++20 extension library does not currently +configuration. The Progmasoft C++17 extension library does not currently promise a stable binary ABI either. Catch2 is not designed to be distributed as dynamic library, and you diff --git a/docs/progmasoft-catch3.md b/docs/progmasoft-catch3.md index 7dc09822..49754af1 100644 --- a/docs/progmasoft-catch3.md +++ b/docs/progmasoft-catch3.md @@ -170,8 +170,8 @@ call-site expansion require it. ## Build and integration The CMake package is `Catch3`, with the targets `Catch3::Catch3` and -`Catch3::Catch3WithMain`. The library is built as C++20; code that includes -only the engine's headers still needs only C++14. After installation, +`Catch3::Catch3WithMain`. The library is C++17, and its headers work in C++17 +and later. After installation, consumers can use: ```cmake @@ -186,7 +186,7 @@ ways to build the same engine and property tests. Their root files are `CMakeLists.txt`, `meson.build`, `xmake.lua`, and `premake5.lua`. Xmake and Premake materialize the default generated configuration header, `Progmasoft/Catch3/UserConfig.hpp`, from the checked-in template. Meson 1.1.0 or newer is required for the Clang-CL -C++20 test target. +C++17 test target. For project history, compatibility intent, license split, and current feature limits, read [Why Progmasoft Catch3?](why-catch3.md). diff --git a/docs/progmasoft-properties.md b/docs/progmasoft-properties.md index e4302383..0b13ad60 100644 --- a/docs/progmasoft-properties.md +++ b/docs/progmasoft-properties.md @@ -224,6 +224,6 @@ A mismatch reports both results as notes. ## Compatibility -The engine is C++20 and part of the `Catch3::Catch3` library. It does not +The engine is C++17 and part of the `Catch3::Catch3` library. It does not change the `Catch` namespace, and it needs no exceptions: a client built without them gets the same results, except that an exception thrown by a body cannot be caught. diff --git a/docs/why-catch3.md b/docs/why-catch3.md index 4d29c4ff..120295f0 100644 --- a/docs/why-catch3.md +++ b/docs/why-catch3.md @@ -17,7 +17,7 @@ Catch2's runner with [its own](progmasoft-runner.md#top). | --- | --- | --- | | Test execution | Catch2's test registration, `RunContext` and listeners | The Catch3 runner: parallel worker processes, retries, flaky-test detection, quarantine, history, selection, sharding and its own command line and reports; `CATCH3_CHECK_FOR_ALL` and `CATCH3_CHECK_PROPERTY` report property outcomes through Catch2's assertion path | | Public include path | The engine's headers moved to `Progmasoft/Catch3/...` with Progmasoft names, such as `TestMacros.hpp` | `Progmasoft/Catch3.hpp` and the other `Progmasoft/Catch3/...` headers | -| C++ baseline | Code that includes the engine's headers needs C++14; the library, which holds the runner, is built as C++20 | The added property API requires C++20 | +| C++ baseline | C++17; the headers work in C++17 and later | The same | | Randomness | Catch2's existing behavior is unchanged | A specified SplitMix64 sequence provides deterministic trial seeds and unbiased bounded integer sampling | | Generated values | No change to existing Catch2 generators | Strategies for numbers, text, collections and structures with `Map`, `Filter` and `FlatMap`; shrinking of recorded choices, so every combination shrinks; replay tokens and an example database; state machines, `Classify`/`Cover` statistics, targeted search, and differential and metamorphic oracles | | Build identity | One library: the `Catch3` CMake package with `Catch3::Catch3` and `Catch3::Catch3WithMain`, `//:catch3` in Bazel, `catch3` in Meson and pkg-config | The same library | @@ -41,7 +41,7 @@ continuity with the included Catch2 3.16.1 base; this is not a promise that ever future Catch2 upstream change will be adopted unchanged or that all downstream projects have already been validated. -The engine, the runner and the Progmasoft additions are one compiled C++20 +The engine, the runner and the Progmasoft additions are one compiled C++17 library. Template-based generators and call-site assertion macros remain in headers; snapshot I/O, result aggregation, and XML serialization are compiled implementations. |