summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-04-29 15:03:24 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-06-19 18:47:56 +0300
commit8b7a24e20f345cccf407ddc9a8133d75fdc99448 (patch)
tree24ecc76c665a9fb4e272c3d168285e0673a594c0
parentd78fbdba8712de8389940180ab0b391da2cbe0b9 (diff)
meson: Link against libc++ with compiling with clang
libc++ is used by Chrome OS, and likely as well by other environments based on clang. Using it by default if available when compiling with clang will help extending the compile-testing coverage. The drawback is that issues specific to clang with libstdc++ will not be caught as easily, but based on the experience with clang so far, code compiling correctly with gcc/libstdc++ has failed with clang due to either clang-specific or libc++-specific behaviour, never due only to the combination of clang with libstdc++. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--meson.build9
1 files changed, 9 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index 4d3e99d3..a3b0bc82 100644
--- a/meson.build
+++ b/meson.build
@@ -28,8 +28,17 @@ common_arguments = [
c_arguments = common_arguments
cpp_arguments = common_arguments
+# Use libc++ by default if available instead of libstdc++ when compiling with
+# clang.
+if cc.get_id() == 'clang' and cc.find_library('libc++', required: false).found()
+ cpp_arguments += [
+ '-stdlib=libc++',
+ ]
+endif
+
add_project_arguments(c_arguments, language : 'c')
add_project_arguments(cpp_arguments, language : 'cpp')
+add_project_link_arguments(cpp_arguments, language : 'cpp')
libcamera_includes = include_directories('include')