launcher-util: pull in drm only for compositor-drm
authorAdrian Negreanu <adrian.m.negreanu@intel.com>
Fri, 27 Sep 2013 17:58:45 +0000 (20:58 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 30 Sep 2013 22:38:15 +0000 (15:38 -0700)
Add drm_set_master and drm_drop_master
as wrappers for drm(Set|Drop)Master, when building compositor-drm
or as empty functions otherwise.

Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
src/launcher-util.c

index a2ad0ec..bdddbb8 100644 (file)
@@ -40,7 +40,9 @@
 #include <linux/kd.h>
 #include <linux/major.h>
 
+#ifdef BUILD_DRM_COMPOSITOR
 #include <xf86drm.h>
+#endif
 
 #include "compositor.h"
 #include "launcher-util.h"
@@ -196,6 +198,26 @@ weston_launcher_data(int fd, uint32_t mask, void *data)
        return 1;
 }
 
+#ifdef BUILD_DRM_COMPOSITOR
+static int
+drm_drop_master(int drm_fd)
+{
+       if (drm_fd != -1)
+               return drmDropMaster(drm_fd);
+       return -EBADF;
+}
+static int
+drm_set_master(int drm_fd)
+{
+       if (drm_fd != -1)
+               return drmSetMaster(drm_fd);
+       return -EBADF;
+}
+#else
+static int drm_drop_master(int drm_fd) {return 0;}
+static int drm_set_master(int drm_fd) {return 0;}
+#endif
+
 static int
 vt_handler(int signal_number, void *data)
 {
@@ -205,13 +227,11 @@ vt_handler(int signal_number, void *data)
        if (compositor->session_active) {
                compositor->session_active = 0;
                wl_signal_emit(&compositor->session_signal, compositor);
-               if (launcher->drm_fd != -1)
-                       drmDropMaster(launcher->drm_fd);
+               drm_drop_master(launcher->drm_fd);
                ioctl(launcher->tty, VT_RELDISP, 1);
        } else {
                ioctl(launcher->tty, VT_RELDISP, VT_ACKACQ);
-               if (launcher->drm_fd != -1)
-                       drmSetMaster(launcher->drm_fd);
+               drm_set_master(launcher->drm_fd);
                compositor->session_active = 1;
                wl_signal_emit(&compositor->session_signal, compositor);
        }