summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac12
-rw-r--r--hw/xwayland/Makefile.am6
-rw-r--r--hw/xwayland/meson.build15
-rw-r--r--hw/xwayland/xwayland.pc.in7
-rw-r--r--meson.build5
-rw-r--r--meson_options.txt2
6 files changed, 46 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 7b1728b0c..2f2c1cd53 100644
--- a/configure.ac
+++ b/configure.ac
@@ -580,6 +580,8 @@ AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest serv
AC_ARG_ENABLE(xquartz, AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto])
AC_ARG_ENABLE(xwayland, AS_HELP_STRING([--enable-xwayland], [Build Xwayland server (default: auto)]), [XWAYLAND=$enableval], [XWAYLAND=auto])
AC_ARG_ENABLE(xwayland-eglstream, AS_HELP_STRING([--enable-xwayland-eglstream], [Build Xwayland eglstream support (default: no)]), [XWAYLAND_EGLSTREAM=$enableval], [XWAYLAND_EGLSTREAM=no])
+AC_ARG_WITH(xwayland-path, AS_HELP_STRING([--with-xwayland-path=PATH], [Directory containing Xwayland executable (default: ${bindir})]),
+ [ xwayland_path="$withval" ], [ xwayland_path="$bindir" ])
AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addition to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no])
AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto])
AC_ARG_ENABLE(glamor, AS_HELP_STRING([--enable-glamor], [Build glamor dix module (default: auto)]), [GLAMOR=$enableval], [GLAMOR=auto])
@@ -2314,6 +2316,9 @@ if test "x$XWAYLAND" = xyes; then
if test "x$GLAMOR" = xyes && test "x$GBM" = xyes; then
AC_DEFINE(XWL_HAS_GLAMOR, 1,
[Build xwayland with glamor support])
+ AC_SUBST(have_glamor, "true")
+ else
+ AC_SUBST(have_glamor, "false")
fi
PKG_CHECK_MODULES(WAYLAND_EGLSTREAM, [wayland-eglstream-protocols >= 1.0.2], [have_wl_eglstream=yes], [have_wl_eglstream=no])
@@ -2336,6 +2341,9 @@ if test "x$XWAYLAND" = xyes; then
AC_SUBST(WAYLAND_EGLSTREAM_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-eglstream-protocols`)
AC_DEFINE(XWL_HAS_EGLSTREAM, 1,
[Build xwayland with eglstream support])
+ AC_SUBST(have_eglstream, "true")
+ else
+ AC_SUBST(have_eglstream, "false")
fi
XWAYLAND_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB"
@@ -2358,6 +2366,9 @@ if test "x$XWAYLAND" = xyes; then
AC_SUBST(SCANNER_ARG, 'code'))
AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
+
+ AC_SUBST(xwayland_path)
+
fi
AM_CONDITIONAL(XWAYLAND_EGLSTREAM, [test "x$XWAYLAND_EGLSTREAM" = "xyes"])
@@ -2502,6 +2513,7 @@ hw/kdrive/ephyr/Makefile
hw/kdrive/ephyr/man/Makefile
hw/kdrive/src/Makefile
hw/xwayland/Makefile
+hw/xwayland/xwayland.pc
test/Makefile
xserver.ent
xorg-server.pc
diff --git a/hw/xwayland/Makefile.am b/hw/xwayland/Makefile.am
index 309efd4cc..cc8a05471 100644
--- a/hw/xwayland/Makefile.am
+++ b/hw/xwayland/Makefile.am
@@ -1,3 +1,4 @@
+bindir = @xwayland_path@
bin_PROGRAMS = Xwayland
Xwayland_CFLAGS = \
@@ -115,7 +116,10 @@ endif
nodist_Xwayland_SOURCES = $(Xwayland_built_sources)
CLEANFILES = $(Xwayland_built_sources)
-EXTRA_DIST = drm.xml
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = xwayland.pc
+
+EXTRA_DIST = xwayland.pc.in drm.xml
$(Xwayland_SOURCES): $(Xwayland_built_sources)
diff --git a/hw/xwayland/meson.build b/hw/xwayland/meson.build
index 2e32a0780..c41080f20 100644
--- a/hw/xwayland/meson.build
+++ b/hw/xwayland/meson.build
@@ -132,4 +132,19 @@ executable(
libglxvnd,
],
install: true,
+ install_dir: xwayland_path
+)
+
+xwayland_data = configuration_data()
+xwayland_data.set('PACKAGE_VERSION', meson.project_version())
+xwayland_data.set('xwayland_path', xwayland_path)
+xwayland_data.set('have_glamor', build_glamor ? 'true' : 'false')
+xwayland_data.set('have_eglstream', build_eglstream ? 'true' : 'false')
+configure_file(
+ input: 'xwayland.pc.in',
+ output: 'xwayland.pc',
+ configuration: xwayland_data,
+ install_dir: join_paths(get_option('prefix'),
+ get_option('libdir'),
+ 'pkgconfig'),
)
diff --git a/hw/xwayland/xwayland.pc.in b/hw/xwayland/xwayland.pc.in
new file mode 100644
index 000000000..cd2802696
--- /dev/null
+++ b/hw/xwayland/xwayland.pc.in
@@ -0,0 +1,7 @@
+Name: Xwayland
+Description: X Server for Wayland
+Version: @PACKAGE_VERSION@
+xwayland=@xwayland_path@/Xwayland
+have_glamor=@have_glamor@
+have_eglstream=@have_eglstream@
+have_initfd=true
diff --git a/meson.build b/meson.build
index dd3ef8fd6..d9535fb86 100644
--- a/meson.build
+++ b/meson.build
@@ -200,6 +200,11 @@ if (host_machine.system() != 'darwin' and
xwayland_required = get_option('xwayland') == 'true'
build_glamor = glamor_option == 'true' or glamor_option == 'auto'
+ xwayland_path = get_option('xwayland-path')
+ if (xwayland_path == '')
+ xwayland_path = join_paths(get_option('prefix'), get_option('bindir'))
+ endif
+
xwayland_dep = [
dependency('wayland-client', version: wayland_req, required: xwayland_required),
dependency('wayland-protocols', version: wayland_protocols_req, required: xwayland_required),
diff --git a/meson_options.txt b/meson_options.txt
index 0e123f450..1a07745e0 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -125,3 +125,5 @@ option('xpbproxy', type: 'boolean', value: false,
option('libunwind', type: 'boolean', value: false,
description: 'Use libunwind for backtrace reporting')
+
+option('xwayland-path', type: 'string', description: 'Directory containing Xwayland executable')