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>
This commit is contained in:
Laurent Pinchart 2019-04-29 15:03:24 +03:00
parent d78fbdba87
commit 8b7a24e20f

View file

@ -28,8 +28,17 @@ common_arguments = [
c_arguments = common_arguments c_arguments = common_arguments
cpp_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(c_arguments, language : 'c')
add_project_arguments(cpp_arguments, language : 'cpp') add_project_arguments(cpp_arguments, language : 'cpp')
add_project_link_arguments(cpp_arguments, language : 'cpp')
libcamera_includes = include_directories('include') libcamera_includes = include_directories('include')