LIBGOBJECT_CFLAGS '$(LIBGOBJECT_CFLAGS)' \
LIBGOBJECT_LIBS '$(LIBGOBJECT_LIBS)' \
HAVE_GOBJECT '$(HAVE_GOBJECT)' \
+ HAVE_GOBJECT_PRIVATES '$(HAVE_GOBJECT_PRIVATES)' \
HAVE_GTK2 '$(HAVE_GTK2)' \
pkgdatadir '$(pkgdatadir)' \
; } >$@.tmp
DX_LIB_GLIB2([], [gobject], [HAVE_GOBJECT=true], [HAVE_GOBJECT=false])
AC_SUBST([HAVE_GOBJECT])
+AS_IF([$HAVE_GOBJECT],
+ [AC_CACHE_CHECK([whether libgobject supports private data members],
+ [dx_cv_libgobject_privates],
+[save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS $LIBGOBJECT_CFLAGS"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+[#include <glib-object.h>
+#if defined(G_ADD_PRIVATE) || defined(G_TYPE_INSTANCE_GET_PRIVATE)
+#else
+DX_LIB_COMPILE_ERROR([private members not supported])
+#endif
+])], [dx_cv_libgobject_privates=yes], [dx_cv_libgobject_privates=no])
+CFLAGS=$save_CFLAGS])])
+
+AS_IF([test x"$dx_cv_libgobject_privates" = x"yes"],
+ [HAVE_GOBJECT_PRIVATES=true], [HAVE_GOBJECT_PRIVATES=false])
+AC_SUBST([HAVE_GOBJECT_PRIVATES])
+
DX_LIB_GTK2([], [HAVE_GTK2=true], [HAVE_GTK2=false])
AC_SUBST([HAVE_GTK2])
-dnl Copyright © 2019-2020 Nick Bowler
+dnl Copyright © 2019-2021 Nick Bowler
dnl License GPLv2+: GNU General Public License version 2 or any later version.
dnl This is free software: you are free to change and redistribute it.
dnl There is NO WARRANTY, to the extent permitted by law.
str_gob=$abs_top_srcdir/t/str.gob
AT_CHECK([gob2 "$str_gob"])
+AT_CHECK([$HAVE_GOBJECT_PRIVATES || exit 77])
TEST_COMPILE_GOBJECT([str.c], [0], [], [stderr])
mv stderr str_stderr
}
]])
AT_CHECK([gob2 test.gob])
+AT_CHECK([$HAVE_GOBJECT_PRIVATES || exit 77])
TEST_COMPILE_GOBJECT([test.c], [0], [], [ignore])
AT_DATA([main.c], [[#include <config.h>
}
]])
AT_CHECK([gob2 test.gob])
+AT_CHECK([$HAVE_GOBJECT_PRIVATES || exit 77])
TEST_COMPILE_GOBJECT([test.c], [0], [], [ignore])
TEST_TYPE_MODULE([:Test])