Skip to content

Commit

Permalink
client/wayland: Generate library to be imported by panel
Browse files Browse the repository at this point in the history
Wayland input-method protocol has set_overlay_panel to set
the IBus lookup window near by the text input cursor and
the calling Wayland APIs and calling GUI APIs need to be same PID.

Now `configure --enable-wayland` by default to include
ibuswaylandim.h in C files generated by Vala.

BUG=#2408
  • Loading branch information
fujiwarat committed Jul 27, 2023
1 parent e379baf commit 494448b
Show file tree
Hide file tree
Showing 10 changed files with 1,085 additions and 748 deletions.
1 change: 1 addition & 0 deletions client/wayland/IBusWaylandIM-1.0.metadata
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
IBusWaylandIM cheader_filename="ibuswaylandim.h"
94 changes: 92 additions & 2 deletions client/wayland/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# ibus - The Input Bus
#
# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
# Copyright (c) 2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
# Copyright (c) 2019-2023 Takao Fujiwara <takao.fujiwara1@gmail.com>
# Copyright (c) 2007-2019 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or modify
Expand All @@ -24,6 +24,9 @@
libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la

libexec_PROGRAMS = ibus-wayland
noinst_DATA =
MAINTAINERCLEANFILES =
DISTCLEANFILES =

protocol_sources = \
input-method-unstable-v1-client-protocol.h \
Expand All @@ -33,6 +36,8 @@ protocol_sources = \
ibus_wayland_SOURCES = \
$(protocol_sources) \
main.c \
ibuswaylandim.c \
ibuswaylandim.h \
$(NULL)

ibus_wayland_DEPENDENCIES = \
Expand All @@ -56,10 +61,95 @@ $(libibus):
(cd $(top_builddir)/src; make)

EXTRA_DIST = \
README \
$(protocol_sources) \
IBusWaylandIM-1.0.metadata \
README \
$(NULL)

-include @wayland_scanner_rules@

# `make distdir` can go to ibus/client/wayland
if ENABLE_WAYLAND
if HAVE_INTROSPECTION
-include $(INTROSPECTION_MAKEFILE)

libibuswaylandim = libibuswaylandim.la
noinst_LTLIBRARIES = $(libibuswaylandim)

libibuswaylandim_la_CPPFLAGS = \
$(GIO2_CFLAGS) \
$(WAYLAND_CFLAGS) \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
$(NULL)
libibuswaylandim_la_LIBADD = \
$(GIO2_LIBS) \
$(WAYLAND_LIBS) \
$(libibus) \
$(NULL)
libibuswaylandim_la_LDFLAGS = \
-no-undefined \
-export-symbols-regex "ibus_wayland_im_.*" \
$(NULL)
libibuswaylandim_la_SOURCES = \
$(protocol_sources) \
ibuswaylandim.c \
ibuswaylandim.h \
$(NULL)

INTROSPECTION_GIRS = IBusWaylandIM-1.0.gir
INTROSPECTION_SCANNER_ARGS = \
--add-include-path=$(top_srcdir)/src \
--add-include-path=$(top_builddir)/src \
$(NULL)
INTROSPECTION_COMPILER_ARGS = \
--includedir=$(srcdir) \
--includedir=. \
$(NULL)
noinst_DATA += $(INTROSPECTION_GIRS)
EXTRA_DIST += $(INTROSPECTION_GIRS)
MAINTAINERCLEANFILES += $(INTROSPECTION_GIRS)
DISTCLEANFILES += $(INTROSPECTION_GIRS)
$(INTROSPECTION_GIRS): $(libibus) $(libibuswaylandim) Makefile
IBusWaylandIM_1_0_gir_SCANNERFLAGS = \
--pkg-export=ibus-1.0 \
--pkg=gobject-2.0 \
$(IBUS_GIR_SCANNERFLAGS) \
$(NULL)
IBusWaylandIM_1_0_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0
IBusWaylandIM_1_0_gir_LIBS = $(libibus) $(libibuswaylandim)
IBusWaylandIM_1_0_gir_FILES = \
ibuswaylandim.h \
$(NULL)
IBusWaylandIM_1_0_gir_CFLAGS = \
-I$(srcdir) \
-I$(builddir) \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
$(NULL)

-include $(VAPIGEN_MAKEFILE)
VAPIGEN_VAPIS = ibus-wayland-im-1.0.vapi
VAPIGEN_VAPIDIRS = \
$(top_srcdir)/bindings/vala \
$(top_builddir)/bindings/vala \
$(NULL)
VAPIGEN_GIRDIRS = \
$(top_srcdir)/src \
$(NULL)
noinst_DATA += $(VAPIGEN_VAPIS)
EXTRA_DIST += $(VAPIGEN_VAPIS)
MAINTAINERCLEANFILES += $(VAPIGEN_VAPIS)
DISTCLEANFILES += $(VAPIGEN_VAPIS)
$(VAPIGEN_VAPIS): $(INTROSPECTION_GIRS)
ibus_wayland_im_1_0_vapi_DEPS = glib-2.0 gobject-2.0 gio-2.0 ibus-1.0
ibus_waylayd_im_1_0_vapi_METADATADIRS = $(srcdir) $(top_srcdir)/bindings/vala
#ibus_waylayd_im_1_0_vapi_VAPIDIRS = $(top_srcdir)/bindings/vala
ibus_wayland_im_1_0_vapi_FILES = $(INTROSPECTION_GIRS)

endif
#end of HAVE_INTROSPECTION
endif
#end of ENABLE_WAYLAND

-include $(top_srcdir)/git.mk
Loading

0 comments on commit 494448b

Please sign in to comment.