From 0ac8b30ba5a112a616d0e9d482546e50bf7a6fdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Fri, 28 Apr 2023 11:35:50 +0200 Subject: yaml: Depend on libyaml >= 0.2.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit libyaml before 0.2.3 expects non-const string parameters. Supporting both variants would require either cpp magic or ignoring "discarded-qualifiers" compiler warnings. For the sake of simplicity just support libyaml 0.2.3 and newer. Note that NO_YAML can be overwritten on the make command line. Signed-off-by: Uwe Kleine-König --- Makefile | 6 +++++- meson.build | 2 +- tests/run_tests.sh | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 6ccee13..784e2f8 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,11 @@ else CFLAGS += $(shell $(PKG_CONFIG) --cflags valgrind) endif -NO_YAML := $(shell $(PKG_CONFIG) --exists yaml-0.1; echo $$?) +# libyaml before version 0.2.3 expects non-const string parameters. Supporting +# both variants would require either cpp magic or passing +# -Wno-error=discarded-qualifiers to the compiler. For the sake of simplicity +# just support libyaml >= 0.2.3. +NO_YAML := $(shell $(PKG_CONFIG) --atleast-version 0.2.3 yaml-0.1; echo $$?) ifeq ($(NO_YAML),1) CFLAGS += -DNO_YAML else diff --git a/meson.build b/meson.build index cef113f..4654803 100644 --- a/meson.build +++ b/meson.build @@ -42,7 +42,7 @@ else endif yamltree = 'yamltree.c' -yaml = dependency('yaml-0.1', required: get_option('yaml'), static: static_build) +yaml = dependency('yaml-0.1', version: '>=0.2.3', required: get_option('yaml'), static: static_build) if not yaml.found() add_project_arguments('-DNO_YAML', language: 'c') yamltree = [] diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 2af8c15..d7a6d49 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -32,7 +32,7 @@ if [ -n "$NO_YAML" ]; then no_yaml=false fi else - if pkg-config --exists yaml-0.1; then + if pkg-config --atleast-version 0.2.3 yaml-0.1; then no_yaml=false else no_yaml=true -- cgit v1.2.1