Weston: add patches to fix the build.

The patches fix two issues:
 - screenshooter-client-protocol.h missing from tarball
 - missing flags for include paths and definitions
I had to add auto* as inputs to be able to call autoreconf, as one patch
modifies a Makefile.am. Both issues are already reported upstream.
This commit is contained in:
Carles Pagès 2012-12-07 12:10:14 +01:00
parent b60d016a0a
commit ec99d9603c
3 changed files with 126 additions and 2 deletions

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pkgconfig, wayland, mesa90x, libxkbcommon, pixman
, cairo, libxcb, libXcursor, x11, udev, libdrm2_4_39, mtdev
, libjpeg, pam }:
, libjpeg, pam, autoconf, automake, libtool }:
let version = "1.0.2"; in
@ -12,9 +12,16 @@ stdenv.mkDerivation rec {
sha256 = "1496l8hmpxx7pivdpp14pv0hi30q18dmnaxz471v9jiqsnnrr11k";
};
patches = [
./screenshooter-client-protocol_h.patch
./makefile.patch
];
buildInputs = [ pkgconfig wayland mesa90x libxkbcommon pixman
cairo libxcb libXcursor x11 udev libdrm2_4_39 mtdev
libjpeg pam ];
libjpeg pam autoconf automake libtool ];
preConfigure = "autoreconf -vfi";
meta = {
description = "Reference implementation of a Wayland compositor";

View file

@ -0,0 +1,45 @@
diff --git a/clients/Makefile.am b/clients/Makefile.am
index 81d1b57..fec50af 100644
--- a/clients/Makefile.am
+++ b/clients/Makefile.am
@@ -80,6 +80,8 @@ libtoytoolkit_a_SOURCES = \
text-cursor-position-client-protocol.h \
workspaces-protocol.c \
workspaces-client-protocol.h
+libtoytoolkit_a_CPPFLAGS = \
+ $(AM_CPPFLAGS) $(PIXMAN_CFLAGS) $(CAIRO_CFLAGS)
toolkit_libs = \
libtoytoolkit.a \
@@ -96,6 +98,7 @@ weston_terminal_SOURCES = terminal.c
weston_terminal_LDADD = $(toolkit_libs) -lutil
image_SOURCES = image.c
+image_CPPFLAGS = $(PIXMAN_CFLAGS) $(CAIRO_CFLAGS)
image_LDADD = $(toolkit_libs)
cliptest_SOURCES = cliptest.c
@@ -103,6 +106,7 @@ cliptest_CPPFLAGS = $(AM_CPPFLAGS) $(PIXMAN_CFLAGS)
cliptest_LDADD = $(toolkit_libs) $(PIXMAN_LIBS)
dnd_SOURCES = dnd.c
+dnd_CPPFLAGS = $(PIXMAN_CFLAGS) $(CAIRO_CFLAGS)
dnd_LDADD = $(toolkit_libs)
smoke_SOURCES = smoke.c
@@ -141,12 +145,15 @@ weston_desktop_shell_SOURCES = \
desktop-shell.c \
desktop-shell-client-protocol.h \
desktop-shell-protocol.c
+weston_desktop_shell_CPPFLAGS = \
+ $(AM_CPPFLAGS) $(PIXMAN_CFLAGS) $(CAIRO_CFLAGS)
weston_desktop_shell_LDADD = $(toolkit_libs)
weston_tablet_shell_SOURCES = \
tablet-shell.c \
tablet-shell-client-protocol.h \
tablet-shell-protocol.c
+weston_tablet_shell_CPPFLAGS = $(PIXMAN_CFLAGS) $(CAIRO_CFLAGS)
weston_tablet_shell_LDADD = $(toolkit_libs)
BUILT_SOURCES = \

View file

@ -0,0 +1,72 @@
diff --git a/clients/screenshooter-client-protocol.h b/clients/screenshooter-client-protocol.h
new file mode 100644
index 0000000..8782ca1
--- /dev/null
+++ b/clients/screenshooter-client-protocol.h
@@ -0,0 +1,66 @@
+#ifndef SCREENSHOOTER_CLIENT_PROTOCOL_H
+#define SCREENSHOOTER_CLIENT_PROTOCOL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stddef.h>
+#include "wayland-client.h"
+
+struct wl_client;
+struct wl_resource;
+
+struct screenshooter;
+
+extern const struct wl_interface screenshooter_interface;
+
+struct screenshooter_listener {
+ /**
+ * done - (none)
+ */
+ void (*done)(void *data,
+ struct screenshooter *screenshooter);
+};
+
+static inline int
+screenshooter_add_listener(struct screenshooter *screenshooter,
+ const struct screenshooter_listener *listener, void *data)
+{
+ return wl_proxy_add_listener((struct wl_proxy *) screenshooter,
+ (void (**)(void)) listener, data);
+}
+
+#define SCREENSHOOTER_SHOOT 0
+
+static inline void
+screenshooter_set_user_data(struct screenshooter *screenshooter, void *user_data)
+{
+ wl_proxy_set_user_data((struct wl_proxy *) screenshooter, user_data);
+}
+
+static inline void *
+screenshooter_get_user_data(struct screenshooter *screenshooter)
+{
+ return wl_proxy_get_user_data((struct wl_proxy *) screenshooter);
+}
+
+static inline void
+screenshooter_destroy(struct screenshooter *screenshooter)
+{
+ wl_proxy_destroy((struct wl_proxy *) screenshooter);
+}
+
+static inline void
+screenshooter_shoot(struct screenshooter *screenshooter, struct wl_output *output, struct wl_buffer *buffer)
+{
+ wl_proxy_marshal((struct wl_proxy *) screenshooter,
+ SCREENSHOOTER_SHOOT, output, buffer);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif