diff options
author | Ted Gould <ted@gould.cx> | 2010-05-20 14:39:17 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-05-20 14:39:17 -0500 |
commit | e09b4591cf46334934a233511b18d7706802bd35 (patch) | |
tree | 0f992ea5cd6b4f859927f298090386dea54f7018 | |
parent | ea79d7fd68a100704d2b1ff883497fef0ce8c3a2 (diff) | |
parent | 0b091646a8ecf62c36cde27a1d0e784a55e9a0c2 (diff) | |
download | libayatana-appindicator-e09b4591cf46334934a233511b18d7706802bd35.tar.gz libayatana-appindicator-e09b4591cf46334934a233511b18d7706802bd35.tar.bz2 libayatana-appindicator-e09b4591cf46334934a233511b18d7706802bd35.zip |
Adding GIR/VAPI support and flattening directories
20 files changed, 200 insertions, 34 deletions
@@ -10,8 +10,8 @@ src/notification-watcher-client.h src/notification-watcher-server.h src/libappindicator.la src/libappindicator_la-application-indicator.lo -src/libappindicatorindicator/application-indicator-enum-types.h -src/libappindicatorindicator/application-indicator-enum-types.c +src/application-indicator-enum-types.h +src/application-indicator-enum-types.c src/stamp-enum-types src/libappindicator_la-application-indicator-enum-types.lo tests/.deps @@ -41,8 +41,8 @@ src/libappindicator_la-app-indicator.lo src/libapplication.la src/libapplication_la-application-service-marshal.lo src/libapplication_la-indicator-application.lo -src/libappindicator/app-indicator-enum-types.c -src/libappindicator/app-indicator-enum-types.h +src/app-indicator-enum-types.c +src/app-indicator-enum-types.h gtk-doc.make py-compile bindings/mono/appindicator-sharp-0.1.pc @@ -85,7 +85,7 @@ docs/reference/version.xml docs/reference/xml docs/reference/tmpl/app-indicator.sgml docs/reference/tmpl/app-indicator.sgml.bak -src/libappindicator/appindicator-0.1.pc +src/appindicator-0.1.pc tests/test-libappindicator-fallback-item tests/test-libappindicator-fallback-watcher tests/test-libappindicator-fallback @@ -95,8 +95,14 @@ tests/test-libappindicator-status-server bindings/mono/AppIndicator.Test.dll bindings/mono/libappindicator-api.middle bindings/mono/examples/IndicatorExample.exe -src/libappindicator/app-indicator-enum-types.gen.c +src/app-indicator-enum-types.gen.c indicator-application-[0-9].[0-9].[0-9].tar.gz indicator-application-[0-9].[0-9].[0-9].tar.gz.asc indicator-application-[0-9].[0-9].[0-9][0-9].tar.gz indicator-application-[0-9].[0-9].[0-9][0-9].tar.gz.asc +m4/gtk-doc.m4 +src/AppIndicator-0.1.gir +src/AppIndicator-0.1.typelib +docs/reference/libappindicator-decl.txt.bak +docs/reference/libappindicator-decl-list.txt.bak +src/AppIndicator-0.1.vapi diff --git a/Makefile.am b/Makefile.am index 4d38ef8..ba772b0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,6 +6,7 @@ SUBDIRS = data \ docs EXTRA_DIST = \ + m4/introspection.m4 \ gtk-doc.make \ omf.make \ xmldocs.make \ @@ -14,7 +15,7 @@ EXTRA_DIST = \ COPYING.LGPL.3 \ ChangeLog -DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-localinstall +DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-localinstall --enable-introspection dist-hook: @if test -d "$(top_srcdir)/.bzr"; \ diff --git a/bindings/mono/app-indicator.sources.xml b/bindings/mono/app-indicator.sources.xml index 3585c44..0d82430 100644 --- a/bindings/mono/app-indicator.sources.xml +++ b/bindings/mono/app-indicator.sources.xml @@ -2,7 +2,7 @@ <api filename="libappindicator-api.raw"> <library name="libappindicator.so.0"> <namespace name="AppIndicator"> - <directory path="../../src/libappindicator"> + <directory path="../../src"> <exclude>app-indicator-enum-types.h.in</exclude> <exclude>app-indicator-enum-types.c.in</exclude> </directory> diff --git a/bindings/python/appindicator.override b/bindings/python/appindicator.override index a01a9a6..b252994 100644 --- a/bindings/python/appindicator.override +++ b/bindings/python/appindicator.override @@ -28,8 +28,8 @@ License version 3 and version 2.1 along with this program. If not, see %% headers #include <Python.h> -#include "../src/libappindicator/app-indicator.h" -#include "../src/libappindicator/app-indicator-enum-types.h" +#include "../src/app-indicator.h" +#include "../src/app-indicator-enum-types.h" #include <glib.h> #include "pygobject.h" #include "pyglib.h" diff --git a/configure.ac b/configure.ac index c34bed2..eab3411 100644 --- a/configure.ac +++ b/configure.ac @@ -53,6 +53,18 @@ AC_SUBST(INDICATOR_CFLAGS) AC_SUBST(INDICATOR_LIBS) ########################### +# GObject Introspection +########################### + +GOBJECT_INTROSPECTION_CHECK([0.6.7]) + +########################### +# Vala API Generation +########################### + +AC_PATH_PROG([VALA_API_GEN], [vapigen]) + +########################### # Check for Mono support ########################### @@ -178,7 +190,7 @@ AC_MSG_RESULT($PYGTK_CODEGEN) AC_OUTPUT([ Makefile src/Makefile -src/libappindicator/appindicator-0.1.pc +src/appindicator-0.1.pc bindings/Makefile bindings/mono/Makefile bindings/mono/appindicator-sharp.dll.config diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am index 1292f4d..3aedd60 100644 --- a/docs/reference/Makefile.am +++ b/docs/reference/Makefile.am @@ -22,7 +22,7 @@ DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml # gtk-doc will search all .c & .h files beneath here for inline comments # documenting the functions and macros. # e.g. DOC_SOURCE_DIR=../../../gtk -DOC_SOURCE_DIR=../../src/libappindicator +DOC_SOURCE_DIR=../../src # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS=--nogtkinit --type-init-func="g_type_init()" @@ -50,8 +50,8 @@ FIXXREF_OPTIONS= # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c -HFILE_GLOB=$(top_srcdir)/src/libappindicator/*.h -CFILE_GLOB=$(top_srcdir)/src/libappindicator/*.c +HFILE_GLOB=$(top_srcdir)/src/*.h +CFILE_GLOB=$(top_srcdir)/src/*.c # Header files to ignore when scanning. # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h @@ -75,7 +75,7 @@ expand_content_files= # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) -GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/libappindicator $(INDICATOR_CFLAGS) +GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src $(INDICATOR_CFLAGS) GTKDOC_LIBS=$(top_builddir)/src/libappindicator.la $(top_builddir)/src/libapplication.la # This includes the standard gtk-doc make rules, copied by gtkdocize. diff --git a/example/simple-client.c b/example/simple-client.c index a698b48..fbcaaaa 100644 --- a/example/simple-client.c +++ b/example/simple-client.c @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "libappindicator/app-indicator.h" +#include "app-indicator.h" #include "libdbusmenu-glib/server.h" #include "libdbusmenu-glib/menuitem.h" diff --git a/m4/introspection.m4 b/m4/introspection.m4 new file mode 100644 index 0000000..589721c --- /dev/null +++ b/m4/introspection.m4 @@ -0,0 +1,94 @@ +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl + +# serial 1 + +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first + + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl + + AC_MSG_CHECKING([for gobject-introspection]) + + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AC_MSG_RESULT([$found_introspection]) + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) diff --git a/src/Makefile.am b/src/Makefile.am index 9f2771e..c2bac63 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ CLEANFILES = DISTCLEANFILES = BUILT_SOURCES = -EXTRA_DIST = libappindicator/appindicator-0.1.pc.in +EXTRA_DIST = appindicator-0.1.pc.in include $(top_srcdir)/Makefile.am.enum include $(top_srcdir)/Makefile.am.marshal @@ -61,14 +61,14 @@ glib_marshal_prefix = _application_service_marshal # Library ################################## -pkgconfig_DATA = libappindicator/appindicator-0.1.pc +pkgconfig_DATA = appindicator-0.1.pc pkgconfigdir = $(libdir)/pkgconfig -glib_enum_h = libappindicator/app-indicator-enum-types.h -glib_enum_c = libappindicator/app-indicator-enum-types.gen.c +glib_enum_h = app-indicator-enum-types.h +glib_enum_c = app-indicator-enum-types.gen.c glib_enum_headers = $(libappindicator_headers) -libappindicator/app-indicator-enum-types.c: libappindicator/app-indicator-enum-types.gen.c +app-indicator-enum-types.c: app-indicator-enum-types.gen.c sed -e "s|\"passive\"|\"Passive\"|" \ -e "s|\"active\"|\"Active\"|" \ -e "s|\"attention\"|\"NeedsAttention\"|" \ @@ -78,7 +78,7 @@ libappindicator/app-indicator-enum-types.c: libappindicator/app-indicator-enum-t -e "s|\"hardware\"|\"Hardware\"|" \ -e "s|\"other\"|\"Other\"|" \ $< > $@ -DISTCLEANFILES += libappindicator/app-indicator-enum-types.c +DISTCLEANFILES += app-indicator-enum-types.c lib_LTLIBRARIES = \ libappindicator.la @@ -86,7 +86,7 @@ lib_LTLIBRARIES = \ libappindicatorincludedir=$(includedir)/libappindicator-0.1/libappindicator libappindicator_headers = \ - $(srcdir)/libappindicator/app-indicator.h + $(srcdir)/app-indicator.h libappindicatorinclude_HEADERS = \ $(libappindicator_headers) \ @@ -94,10 +94,10 @@ libappindicatorinclude_HEADERS = \ libappindicator_la_SOURCES = \ $(libappindicator_headers) \ - libappindicator/app-indicator-enum-types.c \ + app-indicator-enum-types.c \ notification-watcher-client.h \ notification-item-server.h \ - libappindicator/app-indicator.c + app-indicator.c libappindicator_la_LDFLAGS = \ -version-info 0:0:0 \ @@ -142,3 +142,56 @@ BUILT_SOURCES += \ CLEANFILES += $(BUILT_SOURCES) EXTRA_DIST += $(DBUS_SPECS) + +######################### +# GObject Introsepction +######################### + +-include $(INTROSPECTION_MAKEFILE) +INTROSPECTION_GIRS = +INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) +INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir) + +if HAVE_INTROSPECTION + +introspection_sources = $(libappindicatorinclude_HEADERS) + +AppIndicator-0.1.gir: libappindicator.la +AppIndicator_0_1_gir_INCLUDES = \ + GObject-2.0 \ + Gtk-2.0 +AppIndicator_0_1_gir_CFLAGS = $(INDICATOR_CFLAGS) +AppIndicator_0_1_gir_LIBS = libappindicator.la +AppIndicator_0_1_gir_FILES = $(addprefix $(srcdir)/, $(introspection_sources)) + +INTROSPECTION_GIRS += AppIndicator-0.1.gir + +girdir = $(datadir)/gir-1.0 +gir_DATA = $(INTROSPECTION_GIRS) + +typelibdir = $(libdir)/girepository-1.0 +typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) + +CLEANFILES += $(gir_DATA) $(typelib_DATA) + +endif + +######################### +# VAPI Files +######################### + +if HAVE_INTROSPECTION + +vapidir = $(datadir)/vala/vapi +vapi_DATA = AppIndicator-0.1.vapi + +AppIndicator-0.1.vapi: AppIndicator-0.1.gir Makefile.am + $(VALA_API_GEN) --library=AppIndicator-0.1 \ + --pkg gtk+-2.0 \ + --vapidir=$(top_builddir)/src \ + $< + +CLEANFILES += $(vapi_DATA) + +endif + diff --git a/src/libappindicator/app-indicator-enum-types.gen.c.in b/src/app-indicator-enum-types.gen.c.in index 449f3fc..6a647b8 100644 --- a/src/libappindicator/app-indicator-enum-types.gen.c.in +++ b/src/app-indicator-enum-types.gen.c.in @@ -27,7 +27,7 @@ License version 3 and version 2.1 along with this program. If not, see <http://www.gnu.org/licenses/> */ -#include "libappindicator/app-indicator-enum-types.h" +#include "app-indicator-enum-types.h" /*** END file-header ***/ diff --git a/src/libappindicator/app-indicator-enum-types.h.in b/src/app-indicator-enum-types.h.in index da3bf98..da3bf98 100644 --- a/src/libappindicator/app-indicator-enum-types.h.in +++ b/src/app-indicator-enum-types.h.in diff --git a/src/libappindicator/app-indicator.c b/src/app-indicator.c index f7e121b..282e4e6 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/app-indicator.c @@ -35,8 +35,8 @@ License version 3 and version 2.1 along with this program. If not, see #include <libdbusmenu-glib/server.h> #include <libdbusmenu-gtk/client.h> -#include "libappindicator/app-indicator.h" -#include "libappindicator/app-indicator-enum-types.h" +#include "app-indicator.h" +#include "app-indicator-enum-types.h" #include "notification-item-server.h" #include "notification-watcher-client.h" diff --git a/src/libappindicator/app-indicator.h b/src/app-indicator.h index 549ab35..549ab35 100644 --- a/src/libappindicator/app-indicator.h +++ b/src/app-indicator.h diff --git a/src/libappindicator/appindicator-0.1.pc.in b/src/appindicator-0.1.pc.in index b80fded..b80fded 100644 --- a/src/libappindicator/appindicator-0.1.pc.in +++ b/src/appindicator-0.1.pc.in diff --git a/tests/test-libappindicator-dbus-client.c b/tests/test-libappindicator-dbus-client.c index f5482aa..1500213 100644 --- a/tests/test-libappindicator-dbus-client.c +++ b/tests/test-libappindicator-dbus-client.c @@ -25,7 +25,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <dbus/dbus-glib.h> #include <dbus/dbus-glib-bindings.h> #include <dbus/dbus-glib-lowlevel.h> -#include <libappindicator/app-indicator.h> +#include <app-indicator.h> #include "test-defines.h" #include "../src/dbus-shared.h" diff --git a/tests/test-libappindicator-dbus-server.c b/tests/test-libappindicator-dbus-server.c index 2d68950..995d49b 100644 --- a/tests/test-libappindicator-dbus-server.c +++ b/tests/test-libappindicator-dbus-server.c @@ -24,7 +24,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <dbus/dbus-glib.h> #include <dbus/dbus-glib-lowlevel.h> #include <gtk/gtk.h> -#include <libappindicator/app-indicator.h> +#include <app-indicator.h> #include "test-defines.h" static GMainLoop * mainloop = NULL; diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index 9fd1b45..426b6a6 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -2,7 +2,7 @@ #include <glib-object.h> #include <dbus/dbus-glib.h> #include <dbus/dbus-glib-bindings.h> -#include <libappindicator/app-indicator.h> +#include <app-indicator.h> #define TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE (test_libappindicator_fallback_item_get_type ()) #define TEST_LIBAPPINDICATOR_FALLBACK_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, TestLibappindicatorFallbackItem)) diff --git a/tests/test-libappindicator-status-server.c b/tests/test-libappindicator-status-server.c index 79b1759..8cd5571 100644 --- a/tests/test-libappindicator-status-server.c +++ b/tests/test-libappindicator-status-server.c @@ -25,7 +25,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <dbus/dbus-glib.h> #include <dbus/dbus-glib-lowlevel.h> #include <glib.h> -#include <libappindicator/app-indicator.h> +#include <app-indicator.h> static GMainLoop * mainloop = NULL; static gboolean active = FALSE; diff --git a/tests/test-libappindicator.c b/tests/test-libappindicator.c index c987a8f..86879b3 100644 --- a/tests/test-libappindicator.c +++ b/tests/test-libappindicator.c @@ -23,7 +23,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <glib.h> #include <glib-object.h> -#include <libappindicator/app-indicator.h> +#include <app-indicator.h> void test_libappindicator_prop_signals_status_helper (AppIndicator * ci, gchar * status, gboolean * signalactivated) diff --git a/tests/test-simple-app.c b/tests/test-simple-app.c index f5957c8..d60d9b9 100644 --- a/tests/test-simple-app.c +++ b/tests/test-simple-app.c @@ -24,7 +24,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <dbus/dbus-glib-lowlevel.h> #include <glib.h> #include <libdbusmenu-glib/server.h> -#include <libappindicator/app-indicator.h> +#include <app-indicator.h> static GMainLoop * mainloop = NULL; |