From db00c0b4eb738731f2ae4fdc13b7f094986d3a5c Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 10 Jun 2023 16:33:36 +0000 Subject: [PATCH] build: make libbsd dependency optional - strlcpy isn't in POSIX but libbsd ignores POSIX - strlcpy is part of libc on BSDs, Android (bionic), Alpine (musl) - libbsd is redundant on BSDs thus not packaged --- eek/eek-keyboard.c | 3 +++ src/meson.build | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/eek/eek-keyboard.c b/eek/eek-keyboard.c index a41336e7..d1775de0 100644 --- a/eek/eek-keyboard.c +++ b/eek/eek-keyboard.c @@ -20,8 +20,11 @@ #include "config.h" +#ifndef HAVE_STRLCPY +/* Requesting POSIX disables strlcpy in libc but not libbsd */ #define _XOPEN_SOURCE 500 #include +#endif #include #include #include diff --git a/src/meson.build b/src/meson.build index 5041f560..c063d32a 100644 --- a/src/meson.build +++ b/src/meson.build @@ -37,6 +37,12 @@ generated_sources = declare_dependency( cc = meson.get_compiler('c') +if cc.has_function('strlcpy') + libbsd_dep = dependency('', required: false) + add_project_arguments('-DHAVE_STRLCPY', language: 'c') +else + libbsd_dep = dependency('libbsd') +endif deps = [ generated_sources, @@ -44,7 +50,7 @@ deps = [ dependency('gio-unix-2.0'), dependency('gnome-desktop-3.0', version: '>=3.0'), dependency('gtk+-3.0', version: '>=3.0'), - dependency('libbsd'), + libbsd_dep, dependency('libfeedback-0.0'), dependency('wayland-client', version: '>=1.14'), dependency('xkbcommon'), -- GitLab