1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-10-18 00:16:11 -04:00

fromYAML: let configure fail if rapidyaml cannot be found

This commit is contained in:
Philipp Otterbein 2023-02-14 01:14:56 +01:00
parent 12062b6daf
commit 35ec57ae9c

View file

@ -269,31 +269,25 @@ AS_CASE(["$readline_flavor"],
[AC_MSG_ERROR([bad value "$readline_flavor" for --with-readline-flavor, must be one of: editline, readline])]) [AC_MSG_ERROR([bad value "$readline_flavor" for --with-readline-flavor, must be one of: editline, readline])])
PKG_CHECK_MODULES([EDITLINE], [$readline_flavor_pc], [CXXFLAGS="$EDITLINE_CFLAGS $CXXFLAGS"]) PKG_CHECK_MODULES([EDITLINE], [$readline_flavor_pc], [CXXFLAGS="$EDITLINE_CFLAGS $CXXFLAGS"])
# Look for rapidyaml, an optional dependency. # Look for rapidyaml.
have_ryml= have_ryml=
AC_ARG_ENABLE([ryml], AS_HELP_STRING([--disable-ryml], [Do not enable rapidyaml and disable builtins.fromYAML])) AC_ARG_ENABLE([ryml], AS_HELP_STRING([--disable-ryml], [Do not enable rapidyaml and disable builtins.fromYAML]), [], [have_ryml=1])
AC_ARG_VAR([RYML_CPPFLAGS], [C/C++ preprocessor flags for RAPIDYAML]) AC_ARG_VAR([RYML_CPPFLAGS], [C/C++ preprocessor flags for RAPIDYAML])
AC_ARG_VAR([RYML_LDFLAGS], [linker flags for RAPIDYAML]) AC_ARG_VAR([RYML_LDFLAGS], [linker flags for RAPIDYAML])
if test "x$enable_ryml" != "xno"; then if test "x$have_ryml" != "x"; then
AC_LANG_PUSH([C++]) AC_LANG_PUSH([C++])
saveCXXFLAGS="$CXXFLAGS"
saveLDFLAGS="$LDFLAGS"
saveLIBS="$LIBS"
# append RYML_CPPFLAGS to CXXFLAGS because CPPFLAGS are not passed to the C++ compiler # append RYML_CPPFLAGS to CXXFLAGS because CPPFLAGS are not passed to the C++ compiler
CXXFLAGS="$RYML_CPPFLAGS $CXXFLAGS" CXXFLAGS="$RYML_CPPFLAGS $CXXFLAGS"
LDFLAGS="$RYML_LDFLAGS $RYML_LDFLAGS" LDFLAGS="$RYML_LDFLAGS $RYML_LDFLAGS"
LIBS="-lryml $LIBS" LIBS="-lryml $LIBS"
AC_CHECK_HEADERS([ryml.hpp], [have_ryml=1], []) AC_CHECK_HEADERS([ryml.hpp], [true],
[AC_MSG_ERROR([Header of libryml is not found.])])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <ryml.hpp> #include <ryml.hpp>
]], [[ryml::Tree tree;]])], ]], [[ryml::Tree tree;]])],
[AC_DEFINE([HAVE_RYML], [1], [Use rapidyaml]) [AC_DEFINE([HAVE_RYML], [1], [Use rapidyaml])
AC_SUBST(RYML_LIBS, [-lryml])], AC_SUBST(RYML_LIBS, [-lryml])],
[have_ryml= [AC_MSG_ERROR([libryml is not found.])])
CXXFLAGS="$saveCXXFLAGS"
LDFLAGS="$saveLDFLAGS"
LIBS="$saveLIBS"
AC_MSG_RESULT([rapidyaml is not available])])
AC_LANG_POP([C++]) AC_LANG_POP([C++])
fi fi
AC_SUBST(HAVE_RYML, [$have_ryml]) AC_SUBST(HAVE_RYML, [$have_ryml])