[PATCH] test: Don't add current build directory to include path

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sat May 4 16:02:37 CEST 2024


Meson adds the current source and build directory to the include path by
default. This causes a namespace clash in tests when using C++20, as the
Span class test is compiled into a binary named 'span', which then gets
included by source code through indirect '#include <span>' directives.
Unsurprisingly, the compiler doesn't react happily when fed binary data.

We could work around the problem by renaming the test executable, but
disabling the implicit inclusion of the local directory is a more
generic solution that will avoid similar issues in the future.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
This patch makes libcamera build with cpp_std=c++20. Once merged, I will
add a CI test to avoid introduction C++20 compilation breakages, paving
the way to move to the newer language version once the ecosystem will be
ready.
---
 test/meson.build | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/test/meson.build b/test/meson.build
index 8b6057d4e800..5ed052ed62c8 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -89,6 +89,7 @@ foreach test : public_tests
 
     exe = executable(test['name'], test['sources'],
                      dependencies : deps,
+                     implicit_include_directories : false,
                      link_with : test_libraries,
                      include_directories : test_includes_public)
 
@@ -103,6 +104,7 @@ foreach test : internal_tests
 
     exe = executable(test['name'], test['sources'],
                      dependencies : deps,
+                     implicit_include_directories : false,
                      link_with : test_libraries,
                      include_directories : test_includes_internal)
 
@@ -117,6 +119,7 @@ foreach test : internal_non_parallel_tests
 
     exe = executable(test['name'], test['sources'],
                      dependencies : deps,
+                     implicit_include_directories : false,
                      link_with : test_libraries,
                      include_directories : test_includes_internal)
 

base-commit: bf4695266bfca8cc21bcf10a3281e874ebce0d27
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list