Skip to content
Snippets Groups Projects
Commit 53e69825 authored by Gaël Bonithon's avatar Gaël Bonithon
Browse files

build: Simplify and clarify X11/Wayland distinction

* Use XDT_CHECK_OPTIONAL_FEATURE
* Only libxtst remains as a truly optional package, and therefore
  HAVE_LIBXTST as a compiler switch, in addition to ENABLE_X11 and
  ENABLE_WAYLAND.

I didn't want to use xfce4-dev-tools 4.19.0 at first, since it's a dev
version, but it seems ok since it's only a build dependency.
parent 2975a7cd
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,7 @@ NULL =
SUBDIRS =
if HAVE_WAYLAND
if ENABLE_WAYLAND
SUBDIRS += protocols
endif
......
#!/bin/sh
(type xdt-autogen) >/dev/null 2>&1 || {
type xdt-autogen >/dev/null 2>&1 || {
cat >&2 <<EOF
autogen.sh: You don't seem to have the Xfce development tools installed on
your system, which are required to build this software.
Please install the xfce4-dev-tools package first, available from
your distribution or https://www.xfce.org
Please install the xfce4-dev-tools package first, it is available
from your distribution or https://www.xfce.org/.
EOF
exit 1
}
XDT_AUTOGEN_REQUIRED_VERSION="4.14.0" \
exec xdt-autogen $@
XDT_AUTOGEN_REQUIRED_VERSION="4.19.0" exec xdt-autogen "$@"
......@@ -13,14 +13,14 @@ libdaemon_la_SOURCES = \
clipboard-manager.c clipboard-manager.h \
$(NULL)
if HAVE_LIBX11
if ENABLE_X11
libdaemon_la_SOURCES += \
clipboard-manager-x11.c \
clipboard-manager-x11.h \
$(NULL)
endif
if HAVE_WAYLAND
if ENABLE_WAYLAND
libdaemon_la_SOURCES += \
clipboard-manager-wayland.c \
clipboard-manager-wayland.h \
......@@ -36,7 +36,7 @@ libdaemon_la_CFLAGS = \
libdaemon_la_LIBADD =
if HAVE_WAYLAND
if ENABLE_WAYLAND
libdaemon_la_LIBADD += \
$(top_builddir)/protocols/libprotocols.la
endif
......
......@@ -20,11 +20,11 @@
#include <config.h>
#endif
#ifdef HAVE_LIBX11
#ifdef ENABLE_X11
#include <gdk/gdkx.h>
#include <clipboard-manager/clipboard-manager-x11.h>
#endif
#ifdef HAVE_WAYLAND
#ifdef ENABLE_WAYLAND
#include <gdk/gdkwayland.h>
#include <clipboard-manager/clipboard-manager-wayland.h>
#endif
......@@ -52,11 +52,11 @@ xcp_clipboard_manager_get (void)
if (manager != NULL)
return g_object_ref (manager);
#ifdef HAVE_LIBX11
#ifdef ENABLE_X11
if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
manager = g_object_new (XCP_TYPE_CLIPBOARD_MANAGER_X11, NULL);
#endif
#ifdef HAVE_WAYLAND
#ifdef ENABLE_WAYLAND
if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
manager = g_object_new (XCP_TYPE_CLIPBOARD_MANAGER_WAYLAND, NULL);
#endif
......
......@@ -81,26 +81,34 @@ XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [libxfce4util_min_version]
XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-2.0], [libxfce4panel_min_version])
XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [xfconf_min_version])
dnl X11 support
XDT_CHECK_OPTIONAL_PACKAGE([LIBX11], [x11], [libx11_min_version], [libx11], [Libx11 support])
XDT_CHECK_OPTIONAL_PACKAGE([GDKX], [gdk-x11-3.0], [gtk_min_version], [gdk-x11], [GDK X11 support])
XDT_CHECK_OPTIONAL_PACKAGE([LIBXPROTO], [xproto], [libxproto_min_version], [libxproto], [Libxproto support])
XDT_CHECK_OPTIONAL_PACKAGE([LIBXTST], [xtst], [libxtst_min_version], [libxtst], [Libxtst support])
dnl Wayland support
dnl wayland-scanner >= 1.15 is for private-code option to be present
XDT_CHECK_OPTIONAL_PACKAGE([WAYLAND_SCANNER], [wayland-scanner], [wayland_min_version], [wayland-scanner], [Wayland scanner support])
XDT_CHECK_OPTIONAL_PACKAGE([WAYLAND_CLIENT], [wayland-client], [wayland_min_version], [wayland-client], [Wayland client support])
XDT_CHECK_OPTIONAL_PACKAGE([GDKW], [gdk-wayland-3.0], [gtk_min_version], [gdk-wayland], [GDK Wayland support])
if test x"$WAYLAND_SCANNER_FOUND" = x"yes" && test x"$WAYLAND_CLIENT_FOUND" = x"yes" && test x"$GDKW_FOUND" = x"yes"; then
WAYLAND_FOUND="yes"
AC_DEFINE([HAVE_WAYLAND], [1], [Wayland support])
dnl ***********************************
dnl *** Check for optional packages ***
dnl ***********************************
XDT_CHECK_OPTIONAL_FEATURE([X11],
[x11],
[
XDT_FEATURE_DEPENDENCY([LIBX11], [x11], [libx11_min_version])
XDT_FEATURE_DEPENDENCY([GDK_X11], [gdk-x11-3.0], [gtk_min_version])
XDT_FEATURE_DEPENDENCY([LIBXPROTO], [xproto], [libxproto_min_version])
],
[the X11 windowing system])
XDT_CHECK_OPTIONAL_FEATURE([WAYLAND],
[wayland],
[
XDT_FEATURE_DEPENDENCY([GDK_WAYLAND], [gdk-wayland-3.0], [gtk_min_version])
XDT_FEATURE_DEPENDENCY([WAYLAND_SCANNER], [wayland-scanner], [wayland_min_version])
XDT_FEATURE_DEPENDENCY([WAYLAND_CLIENT], [wayland-client], [wayland_min_version])
],
[the Wayland windowing system])
if test x"$ENABLE_X11" != x"yes" -a x"$ENABLE_WAYLAND" != x"yes"; then
AC_MSG_ERROR([Either both X11 and Wayland support was disabled, or required dependencies are missing. One of the two must be enabled.])
fi
AM_CONDITIONAL([HAVE_WAYLAND], [test x"$WAYLAND_SCANNER_FOUND" = x"yes" && test x"$WAYLAND_CLIENT_FOUND" = x"yes" && test x"$GDKW_FOUND" = x"yes"])
if test x"$ENABLE_X11" != x"yes"; then
dnl Do not check for optional X11 packages if X11 is disabled
enable_libxtst=no
fi
XDT_CHECK_OPTIONAL_PACKAGE([LIBXTST], [xtst], [libxtst_min_version], [libxtst], [Libxtst support])
dnl *****************************
dnl *** Check for libqrencode ***
dnl *****************************
XDT_CHECK_OPTIONAL_PACKAGE([QRENCODE], [libqrencode], [libqrencode_min_version], libqrencode, [QR Code support])
dnl ******************************
......@@ -141,9 +149,11 @@ dnl ***************************
echo
echo "Build Configuration:"
echo
echo " * Debug Support: $enable_debug"
echo " * X11 Support: ${LIBX11_FOUND:-no}"
echo " * Libxtst Support: ${LIBXTST_FOUND:-no}"
echo " * Wayland Support: ${WAYLAND_FOUND:-no}"
echo " * QR Code Support: ${QRENCODE_FOUND:-no}"
echo "* Debug Support: $enable_debug"
echo "* X11 Support: ${ENABLE_X11:-no}"
if test x"$ENABLE_X11" = x"yes"; then
echo " * Libxtst Support: ${LIBXTST_FOUND:-no}"
fi
echo "* Wayland Support: ${ENABLE_WAYLAND:-no}"
echo "* QR Code Support: ${QRENCODE_FOUND:-no}"
echo
......@@ -12,7 +12,7 @@ AM_CPPFLAGS = \
bin_PROGRAMS = xfce4-popup-clipman xfce4-clipman-settings xfce4-clipman-history
if HAVE_LIBX11
if ENABLE_X11
bin_PROGRAMS += xfce4-clipman
endif
......@@ -40,7 +40,6 @@ xfce4_popup_clipman_CFLAGS = \
-DGSEAL_ENABLE \
@LIBX11_CFLAGS@ \
@LIBXTST_CFLAGS@ \
@GDKX_CFLAGS@ \
@GTK_CFLAGS@ \
@LIBXFCE4UI_CFLAGS@ \
$(NULL)
......@@ -48,7 +47,6 @@ xfce4_popup_clipman_CFLAGS = \
xfce4_popup_clipman_LDADD = \
@LIBX11_LIBS@ \
@LIBXTST_LIBS@ \
@GDKX_LIBS@ \
@GTK_LIBS@ \
@LIBXFCE4UI_LIBS@ \
$(NULL)
......@@ -73,7 +71,6 @@ xfce4_clipman_history_CFLAGS = \
@LIBX11_CFLAGS@ \
@LIBXTST_CFLAGS@ \
@GIO_CFLAGS@ \
@GDKX_CFLAGS@ \
@GTK_CFLAGS@ \
@LIBXFCE4UTIL_CFLAGS@ \
@LIBXFCE4UI_CFLAGS@ \
......@@ -85,7 +82,6 @@ xfce4_clipman_history_LDADD = \
@LIBX11_LIBS@ \
@LIBXTST_LIBS@ \
@GIO_LIBS@ \
@GDKX_LIBS@ \
@GTK_LIBS@ \
@LIBXFCE4UTIL_LIBS@ \
@LIBXFCE4UI_LIBS@ \
......@@ -125,7 +121,7 @@ xfce4_clipman_settings_LDADD = \
# Status Icon
#
if HAVE_LIBX11
if ENABLE_X11
xfce4_clipman_SOURCES = \
main-status-icon.c \
......@@ -143,7 +139,6 @@ xfce4_clipman_CFLAGS = \
@GIO_CFLAGS@ \
@LIBX11_CFLAGS@ \
@LIBXTST_CFLAGS@ \
@GDKX_CFLAGS@ \
@GTK_CFLAGS@ \
@LIBXFCE4UTIL_CFLAGS@ \
@LIBXFCE4UI_CFLAGS@ \
......@@ -155,7 +150,6 @@ xfce4_clipman_LDADD = \
@GIO_LIBS@ \
@LIBX11_LIBS@ \
@LIBXTST_LIBS@ \
@GDKX_LIBS@ \
@GTK_LIBS@ \
@LIBXFCE4UTIL_LIBS@ \
@LIBXFCE4UI_LIBS@ \
......@@ -187,7 +181,6 @@ libclipman_la_CFLAGS = \
@GIO_CFLAGS@ \
@LIBX11_CFLAGS@ \
@LIBXTST_CFLAGS@ \
@GDKX_CFLAGS@ \
@GTK_CFLAGS@ \
@LIBXFCE4UTIL_CFLAGS@ \
@LIBXFCE4UI_CFLAGS@ \
......@@ -209,7 +202,6 @@ libclipman_la_LIBADD = \
@GIO_LIBS@ \
@LIBX11_LIBS@ \
@LIBXTST_LIBS@ \
@GDKX_LIBS@ \
@GTK_LIBS@ \
@LIBXFCE4UTIL_LIBS@ \
@LIBXFCE4UI_LIBS@ \
......@@ -238,7 +230,7 @@ plugins_DATA = $(plugins_in_files:.desktop.in=.desktop)
appsdir = $(datadir)/applications
apps_in_files = xfce4-clipman-settings.desktop.in
if HAVE_LIBX11
if ENABLE_X11
apps_in_files += xfce4-clipman.desktop.in
endif
apps_DATA = $(apps_in_files:.desktop.in=.desktop)
......@@ -248,7 +240,7 @@ apps_DATA = $(apps_in_files:.desktop.in=.desktop)
# Autostart File
#
if HAVE_LIBX11
if ENABLE_X11
autostartdir = $(sysconfdir)/xdg/autostart
autostart_in_files = xfce4-clipman-plugin-autostart.desktop.in
......
......@@ -26,13 +26,13 @@
#define __CLIPMAN_COMMON_H__
#include <gdk/gdk.h>
#ifdef GDK_WINDOWING_X11
#ifdef ENABLE_X11
#include <gdk/gdkx.h>
#define WINDOWING_IS_X11() GDK_IS_X11_DISPLAY (gdk_display_get_default ())
#else
#define WINDOWING_IS_X11() FALSE
#endif
#ifdef GDK_WINDOWING_WAYLAND
#ifdef ENABLE_WAYLAND
#include <gdk/gdkwayland.h>
#define WINDOWING_IS_WAYLAND() GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())
#else
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment