From 81fbdf1e460fd198a53903cc8f250cc4508f25fe Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Tue, 22 Apr 2025 10:04:40 +0300 Subject: pixelformats: Disable constexpr for older compilers gcc 11 and earlier do not support constexpr strings and vectors. Add tests and ifdefs to only use constexpr on selected places for gcc 12+. Signed-off-by: Tomi Valkeinen --- kms++/inc/kms++/pixelformats.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'kms++') diff --git a/kms++/inc/kms++/pixelformats.h b/kms++/inc/kms++/pixelformats.h index 6049c20..fac9c0f 100644 --- a/kms++/inc/kms++/pixelformats.h +++ b/kms++/inc/kms++/pixelformats.h @@ -15,7 +15,12 @@ constexpr uint32_t str_to_fourcc(const std::string_view fourcc) return fourcc[0] | (fourcc[1] << 8) | (fourcc[2] << 16) | (fourcc[3] << 24); } -constexpr std::string fourcc_to_str(uint32_t fourcc) +#if HAS_CONSTEXPR_STR +constexpr +#else +static inline +#endif +std::string fourcc_to_str(uint32_t fourcc) { char buf[4] = { (char)((fourcc >> 0) & 0xff), @@ -146,7 +151,10 @@ struct PixelFormatPlaneInfo { }; struct PixelFormatInfo { - constexpr PixelFormatInfo(const std::string_view name, + #if HAS_CONSTEXPR_STR && HAS_CONSTEXPR_VEC + constexpr + #endif + PixelFormatInfo(const std::string_view name, const std::string_view drm_fourcc, const std::string_view v4l2_4cc, PixelColorType color, -- cgit v1.2.3