conanfile: set compatibility_cppstr = False.

The Catch libraries have different API/ABI depending on the c++
standard they are compiled with. For example, the following function
isn't in the binary when compiled with C++14, only with C++17 or later:

StringMaker<std::string_view>::convert(std::string_view str);

By default, Conan is allowed to serve Catch libraries compiled in C++14
into a project using C++17/20, potentially causing linker errors
because of missing symbols. This PR overrides this default behaviour:
the C++ standard of the Catch library will exactly match the one of
the requiring project (building Catch from source if necessary).
This commit is contained in:
Vincent Saulue-Laborde 2024-04-17 21:26:13 +02:00 committed by Martin Hořeňovský
parent 53ddf37af4
commit 8e80b8f22c

View File

@ -19,6 +19,7 @@ class CatchConan(ConanFile):
license = "BSL-1.0"
version = "latest"
settings = "os", "compiler", "build_type", "arch"
extension_properties = {"compatibility_cppstd": False}
options = {
"shared": [True, False],