diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2024-09-15 17:57:45 +0200 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2024-09-19 09:11:08 +0200 |
commit | 4793dab964826c99c0c9e4143fe49c0a9c1d47d1 (patch) | |
tree | 8c304408e3c2eb1d007b6c5793e6ed13ce1b618d | |
parent | databases/timescaledb-tune: Update to 0.17.0 (diff) |
devel/catch: fix build with clang 19
Clang 19 has become more strict about C++ extensions, which results in:
/wrkdirs/usr/ports/devel/catch/work/Catch2-2.13.10/projects/SelfTest/UsageTests/Class.tests.cpp:83:1: error: passing no argument for the '...' parameter of a variadic macro is a C++20 extension [-Werror,-Wc++20-extensions]
83 | TEMPLATE_TEST_CASE_METHOD(Template_Fixture, "A TEMPLATE_TEST_CASE_METHOD based test run that succeeds", "[class][template]", int, float, double) {
| ^
/wrkdirs/usr/ports/devel/catch/work/Catch2-2.13.10/include/catch.hpp:257:53: note: expanded from macro 'TEMPLATE_TEST_CASE_METHOD'
257 | #define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ )
| ^
/wrkdirs/usr/ports/devel/catch/work/Catch2-2.13.10/include/internal/catch_test_registry.h:302:9: note: expanded from macro 'INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD'
302 | INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
| ^
/wrkdirs/usr/ports/devel/catch/work/Catch2-2.13.10/include/internal/catch_test_registry.h:279:13: note: expanded from macro 'INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2'
279 | INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\
| ^
/wrkdirs/usr/ports/devel/catch/work/Catch2-2.13.10/include/internal/catch_preprocessor.hpp:217:465: note: expanded from macro 'INTERNAL_CATCH_NTTP_GEN'
217 | #define INTERNAL_CATCH_NTTP_GEN(...) INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__),INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_0)
| ^
/wrkdirs/usr/ports/devel/catch/work/Catch2-2.13.10/include/internal/catch_preprocessor.hpp:100:9: note: macro 'INTERNAL_CATCH_VA_NARGS_IMPL' defined here
100 | #define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N
| ^
This can be fixed by adding -Wno-error=c++20-extensions, which is
supported by both clang and gcc. Unfortunately adding it to CXXFLAGS
does not work, since that is prepended to the compiler flags in
CMakeLists.txt, so -Werror comes after it. Therefore, patch the
appropriate CMakeLists.txt file.
PR: 281519
Approved by: sunpoet (maintainer)
MFH: 2024Q3
-rw-r--r-- | devel/catch/Makefile | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/devel/catch/Makefile b/devel/catch/Makefile index df4f7b4f3cea..d5c663b7c367 100644 --- a/devel/catch/Makefile +++ b/devel/catch/Makefile @@ -23,6 +23,10 @@ PORTSCOUT= limit:^2\. OPTIONS_DEFINE= DOCS +post-patch: + @${REINPLACE_CMD} -e 's/\(-Wno-error=pragmas\)/\1 -Wno-error=c++20-extensions/' \ + ${WRKSRC}/projects/CMakeLists.txt + do-test: ${BUILD_WRKSRC}/projects/SelfTest |