new file mode 100644
@@ -0,0 +1,3 @@
+[built-in options]
+cpp_args = ['-stdlib=libstdc++']
+cpp_link_args = ['-stdlib=libstdc++']
@@ -29,7 +29,12 @@ variables:
# clang fails to link with ASan if --no-undefined is enabled.
MESON_CLANG_OPTIONS: >-
-D b_lundef=false
+ MESON_CLANG_LIBCPP_OPTIONS: >-
+ ${MESON_CLANG_OPTIONS}
--native-file $CI_PROJECT_DIR/.gitlab-ci/meson/libc++.native
+ MESON_CLANG_LIBSTDCPP_OPTIONS: >-
+ ${MESON_CLANG_OPTIONS}
+ --native-file $CI_PROJECT_DIR/.gitlab-ci/meson/libstdc++.native
PACKAGES: >-
ca-certificates
git
@@ -194,21 +199,14 @@ build-full:debian:12:
${MESON_ALL_OPTIONS}
-D b_sanitize=none
- ARCH: amd64
- BUILD_TYPE: debug
- CC: clang
- CXX: clang++
- MESON_OPTIONS: >-
- ${MESON_ALL_OPTIONS}
- ${MESON_CLANG_OPTIONS}
- -D qcam=disabled
- - ARCH: amd64
- BUILD_TYPE: release
+ BUILD_TYPE:
+ - debug
+ - release
CC: clang
CXX: clang++
- MESON_OPTIONS: >-
- ${MESON_ALL_OPTIONS}
- ${MESON_CLANG_OPTIONS}
- -D qcam=disabled
+ MESON_OPTIONS:
+ - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled
+ - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBSTDCPP_OPTIONS}
build-full:debian:12:as-subproject:
extends:
@@ -256,13 +254,11 @@ build-full:debian:13:
- ARCH: amd64
CC: clang
CXX: clang++
- MESON_OPTIONS: >-
- ${MESON_ALL_OPTIONS}
- ${MESON_CLANG_OPTIONS}
- -D qcam=disabled
- -D cpp_debugstl=false
- # `cpp_debugstl=false` needed approximately between meson 1.4.0 and 1.9.3
- # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812
+ MESON_OPTIONS:
+ # `cpp_debugstl=false` needed approximately between meson 1.4.0 and 1.9.3
+ # with clang 18 or later due to https://github.com/mesonbuild/meson/issues/13812
+ - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBCPP_OPTIONS} -D qcam=disabled -D cpp_debugstl=false
+ - ${MESON_ALL_OPTIONS} ${MESON_CLANG_LIBSTDCPP_OPTIONS}
- ARCH: armhf
- ARCH: arm64
Currently clang is only used to test libc++ builds. This, however, prevents the build testing of e.g. qcam since the packaged qt libraries use libstdc++, so it needs to be disabled when using libc++. So duplicate every current clang job for libstdc++ testing. Link: https://gitlab.freedesktop.org/camera/libcamera/-/issues/315 Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- Maybe it's not worth duplicating each clang job, but adding at least one (clang, libstdc++) build is probably worth it. --- .gitlab-ci/meson/libstdc++.native | 3 +++ gitlab-ci.yml | 36 ++++++++++++++----------------- 2 files changed, 19 insertions(+), 20 deletions(-) create mode 100644 .gitlab-ci/meson/libstdc++.native -- 2.53.0