diff mbox series

[libgpiod] build: imply --enable-bindings-glib for --enable-dbus

Message ID 20240903095357.27998-1-brgl@bgdev.pl
State New
Headers show
Series [libgpiod] build: imply --enable-bindings-glib for --enable-dbus | expand

Commit Message

Bartosz Golaszewski Sept. 3, 2024, 9:53 a.m. UTC
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

GLib bindings are required to build the D-Bus daemon. Enable them
automatically if --enable-dbus is passed to configure.

Fixes: a5ab76da1e0a ("dbus: add the D-Bus daemon, command-line client and tests")
Reported-by: Douglas Silva <doug.hs@proton.me>
Suggested-by: Kent Gibson <warthog618@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 configure.ac | 48 +++++++++++++++++++++---------------------------
 1 file changed, 21 insertions(+), 27 deletions(-)

Comments

Kent Gibson Sept. 4, 2024, 11:29 a.m. UTC | #1
On Tue, Sep 03, 2024 at 11:53:57AM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> GLib bindings are required to build the D-Bus daemon. Enable them
> automatically if --enable-dbus is passed to configure.
>
> Fixes: a5ab76da1e0a ("dbus: add the D-Bus daemon, command-line client and tests")
> Reported-by: Douglas Silva <doug.hs@proton.me>
> Suggested-by: Kent Gibson <warthog618@gmail.com>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
>  configure.ac | 48 +++++++++++++++++++++---------------------------
>  1 file changed, 21 insertions(+), 27 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 1ac1002..a4dd05f 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -250,6 +250,27 @@ then
>  	fi
>  fi
>
> +AC_ARG_ENABLE([dbus],
> +	[AS_HELP_STRING([--enable-dbus], [build dbus daemon [default=no]])],
> +	[if test "x$enableval" == xyes; then with_dbus=true; with_bindings_glib=true; fi],
> +	[with_dbus=false])
> +AM_CONDITIONAL([WITH_DBUS], [test "x$with_dbus" = xtrue])
> +
> +AC_DEFUN([FUNC_NOT_FOUND_DBUS],
> +	[ERR_NOT_FOUND([$1()], [dbus daemon])])
> +
> +if test "x$with_dbus" = xtrue
> +then
> +	AC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_DBUS([daemon])])
> +	AC_CHECK_FUNC([strverscmp], [], [FUNC_NOT_FOUND_DBUS([strverscmp])])
> +	PKG_CHECK_MODULES([GUDEV], [gudev-1.0 >= 230])
> +	AC_CHECK_PROG([has_gdbus_codegen], [gdbus-codegen], [true], [false])
> +	if test "x$has_gdbus_codegen" = xfalse
> +	then
> +		AC_MSG_ERROR([gdbus-codegen not found - needed to build dbus daemon])
> +	fi
> +fi
> +
>  AC_ARG_ENABLE([bindings-glib],
>  	[AS_HELP_STRING([--enable-bindings-glib],[enable GLib 2.0 bindings [default=no]])],
>  	[if test "x$enableval" = xyes; then with_bindings_glib=true; fi],
> @@ -280,33 +301,6 @@ m4_ifdef([GOBJECT_INTROSPECTION_CHECK],
>  	[GOBJECT_INTROSPECTION_CHECK([0.6.2])],
>  	[AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")])
>
> -# Depends on GLib bindings so must come after
> -AC_ARG_ENABLE([dbus],
> -	[AS_HELP_STRING([--enable-dbus], [build dbus daemon [default=no]])],
> -	[if test "x$enableval" == xyes; then with_dbus=true; fi],
> -	[with_dbus=false])
> -AM_CONDITIONAL([WITH_DBUS], [test "x$with_dbus" = xtrue])
> -
> -AC_DEFUN([FUNC_NOT_FOUND_DBUS],
> -	[ERR_NOT_FOUND([$1()], [dbus daemon])])
> -
> -if test "x$with_dbus" = xtrue && test "x$with_bindings_glib" != xtrue
> -then
> -	AC_MSG_ERROR([GLib bindings are required to build the dbus daemon - use --enable-bindings-glib])
> -fi
> -
> -if test "x$with_dbus" = xtrue
> -then
> -	AC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_DBUS([daemon])])
> -	AC_CHECK_FUNC([strverscmp], [], [FUNC_NOT_FOUND_DBUS([strverscmp])])
> -	PKG_CHECK_MODULES([GUDEV], [gudev-1.0 >= 230])
> -	AC_CHECK_PROG([has_gdbus_codegen], [gdbus-codegen], [true], [false])
> -	if test "x$has_gdbus_codegen" = xfalse
> -	then
> -		AC_MSG_ERROR([gdbus-codegen not found - needed to build dbus daemon])
> -	fi
> -fi
> -
>  AC_ARG_ENABLE([systemd],
>  	[AS_HELP_STRING([--enable-systemd], [enable systemd support [default=no]])],
>  	[if test "x$enableval" == xyes; then with_systemd=true; fi],
> --
> 2.43.0
>

This does not work for me.
Using both --enable-dbus and --enable-bindings-glib works, but only
specifying --enable-dbus results in:

make[3]: Entering directory '/home/dev/libgpiod/dbus/lib'
  GEN      generated-gpiodbus.c
make  all-am
make[4]: Entering directory '/home/dev/libgpiod/dbus/lib'
  CC       libgpiodbus_la-generated-gpiodbus.lo
In file included from generated-gpiodbus.c:13:
generated-gpiodbus.h:12:10: fatal error: gio/gio.h: No such file or directory
   12 | #include <gio/gio.h>
      |          ^~~~~~~~~~~
compilation terminated.

It isn't propagating the glib dependency that populates the
GLIB_CFLAGS and so the include paths.

That is on Debian testing, btw.

Cheers,
Kent.
Bartosz Golaszewski Sept. 4, 2024, 11:35 a.m. UTC | #2
On Wed, Sep 4, 2024 at 1:29 PM Kent Gibson <warthog618@gmail.com> wrote:
>
> On Tue, Sep 03, 2024 at 11:53:57AM +0200, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> >
> > GLib bindings are required to build the D-Bus daemon. Enable them
> > automatically if --enable-dbus is passed to configure.
> >
> > Fixes: a5ab76da1e0a ("dbus: add the D-Bus daemon, command-line client and tests")
> > Reported-by: Douglas Silva <doug.hs@proton.me>
> > Suggested-by: Kent Gibson <warthog618@gmail.com>
> > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> This does not work for me.
> Using both --enable-dbus and --enable-bindings-glib works, but only
> specifying --enable-dbus results in:
>
> make[3]: Entering directory '/home/dev/libgpiod/dbus/lib'
>   GEN      generated-gpiodbus.c
> make  all-am
> make[4]: Entering directory '/home/dev/libgpiod/dbus/lib'
>   CC       libgpiodbus_la-generated-gpiodbus.lo
> In file included from generated-gpiodbus.c:13:
> generated-gpiodbus.h:12:10: fatal error: gio/gio.h: No such file or directory
>    12 | #include <gio/gio.h>
>       |          ^~~~~~~~~~~
> compilation terminated.
>
> It isn't propagating the glib dependency that populates the
> GLIB_CFLAGS and so the include paths.
>
> That is on Debian testing, btw.
>

Hmm, weird, I remember testing this as the first thing but it doesn't
work indeed. Maybe I had a dirty build dir. I'll look into it.

Bart
diff mbox series

Patch

diff --git a/configure.ac b/configure.ac
index 1ac1002..a4dd05f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -250,6 +250,27 @@  then
 	fi
 fi
 
+AC_ARG_ENABLE([dbus],
+	[AS_HELP_STRING([--enable-dbus], [build dbus daemon [default=no]])],
+	[if test "x$enableval" == xyes; then with_dbus=true; with_bindings_glib=true; fi],
+	[with_dbus=false])
+AM_CONDITIONAL([WITH_DBUS], [test "x$with_dbus" = xtrue])
+
+AC_DEFUN([FUNC_NOT_FOUND_DBUS],
+	[ERR_NOT_FOUND([$1()], [dbus daemon])])
+
+if test "x$with_dbus" = xtrue
+then
+	AC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_DBUS([daemon])])
+	AC_CHECK_FUNC([strverscmp], [], [FUNC_NOT_FOUND_DBUS([strverscmp])])
+	PKG_CHECK_MODULES([GUDEV], [gudev-1.0 >= 230])
+	AC_CHECK_PROG([has_gdbus_codegen], [gdbus-codegen], [true], [false])
+	if test "x$has_gdbus_codegen" = xfalse
+	then
+		AC_MSG_ERROR([gdbus-codegen not found - needed to build dbus daemon])
+	fi
+fi
+
 AC_ARG_ENABLE([bindings-glib],
 	[AS_HELP_STRING([--enable-bindings-glib],[enable GLib 2.0 bindings [default=no]])],
 	[if test "x$enableval" = xyes; then with_bindings_glib=true; fi],
@@ -280,33 +301,6 @@  m4_ifdef([GOBJECT_INTROSPECTION_CHECK],
 	[GOBJECT_INTROSPECTION_CHECK([0.6.2])],
 	[AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")])
 
-# Depends on GLib bindings so must come after
-AC_ARG_ENABLE([dbus],
-	[AS_HELP_STRING([--enable-dbus], [build dbus daemon [default=no]])],
-	[if test "x$enableval" == xyes; then with_dbus=true; fi],
-	[with_dbus=false])
-AM_CONDITIONAL([WITH_DBUS], [test "x$with_dbus" = xtrue])
-
-AC_DEFUN([FUNC_NOT_FOUND_DBUS],
-	[ERR_NOT_FOUND([$1()], [dbus daemon])])
-
-if test "x$with_dbus" = xtrue && test "x$with_bindings_glib" != xtrue
-then
-	AC_MSG_ERROR([GLib bindings are required to build the dbus daemon - use --enable-bindings-glib])
-fi
-
-if test "x$with_dbus" = xtrue
-then
-	AC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_DBUS([daemon])])
-	AC_CHECK_FUNC([strverscmp], [], [FUNC_NOT_FOUND_DBUS([strverscmp])])
-	PKG_CHECK_MODULES([GUDEV], [gudev-1.0 >= 230])
-	AC_CHECK_PROG([has_gdbus_codegen], [gdbus-codegen], [true], [false])
-	if test "x$has_gdbus_codegen" = xfalse
-	then
-		AC_MSG_ERROR([gdbus-codegen not found - needed to build dbus daemon])
-	fi
-fi
-
 AC_ARG_ENABLE([systemd],
 	[AS_HELP_STRING([--enable-systemd], [enable systemd support [default=no]])],
 	[if test "x$enableval" == xyes; then with_systemd=true; fi],