Skip to content

Commit

Permalink
conanfile: set compatibility_cppstr = False.
Browse files Browse the repository at this point in the history
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).
  • Loading branch information
vsaulue authored and horenmar committed Apr 18, 2024
1 parent 53ddf37 commit 8e80b8f
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions conanfile.py
Expand Up @@ -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],
Expand Down

0 comments on commit 8e80b8f

Please sign in to comment.