include $(top_srcdir)/common.mk
+include $(top_srcdir)/Makefile.introspection
# We need to build a shared library, which can be dlopened
# it does not work with noinst_LTLIBRARIES
install-testlibLTLIBRARIES: # prevent it from being installed
AM_CPPFLAGS = -I$(top_srcdir)/girepository
-AM_CFLAGS = $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS)
+AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS)
AM_LDFLAGS = -avoid-version
LIBS = $(GOBJECT_LIBS) $(GTHREAD_LIBS)
TGIRS = $(GIRS:.gir=.tgir)
CHECKTGIRS = $(GIRS:.gir=.tgir.check)
EXPECTEDTGIRS = $(GIRS:.gir=-expected.tgir)
-CLEANFILES = $(TYPELIBS) $(GIRS) $(TGIRS)
-BUILT_SOURCES = $(TYPELIBS) $(GIRS)
+INTROSPECTION_GIRS = $(GIRS)
+CLEANFILES = $(TYPELIBS) $(GIRS)
+BUILT_SOURCES = $(TYPELIBS) $(GIRS) $(TGIRS)
EXTRA_DIST = $(EXPECTEDGIRS) $(EXPECTEDTGIRS)
-annotation-1.0.gir: libannotation.la annotation.c annotation.h utility-1.0.gir $(SCANNER_BIN) $(SCANNER_LIBS) Makefile
- $(CHECK_DEBUG) $(SCANNER) \
- --include=GObject-2.0 \
- --include=utility-1.0 \
- --libtool="$(LIBTOOL)" \
- --library=annotation \
- --namespace=annotation \
- --nsversion=1.0 \
- --pkg gobject-2.0 \
- $(srcdir)/annotation.h $(srcdir)/annotation.c \
- --output $@
+annotation-1.0.gir: utility-1.0.gir libannotation.la
+annotation_1_0_gir_PACKAGES = gobject-2.0
+annotation_1_0_gir_LIBS = libannotation.la
+annotation_1_0_gir_INCLUDES = GObject-2.0 utility-1.0
+annotation_1_0_gir_FILES = $(libannotation_la_SOURCES)
GIRS += annotation-1.0.gir
-drawable-1.0.gir: libdrawable.la drawable.c drawable.h utility-1.0.gir $(SCANNER_BIN) $(SCANNER_LIBS) Makefile
- $(CHECK_DEBUG) $(SCANNER) \
- --include=GObject-2.0 \
- --include=utility-1.0 \
- --libtool="$(LIBTOOL)" \
- --library=drawable \
- --namespace=drawable \
- --nsversion=1.0 \
- --pkg gobject-2.0 \
- $(srcdir)/drawable.h $(srcdir)/drawable.c \
- --output $@
+drawable-1.0.gir: utility-1.0.gir libdrawable.la
+drawable_1_0_gir_PACKAGES = gobject-2.0
+drawable_1_0_gir_LIBS = libdrawable.la
+drawable_1_0_gir_INCLUDES = GObject-2.0 utility-1.0
+drawable_1_0_gir_FILES = $(libdrawable_la_SOURCES)
GIRS += drawable-1.0.gir
-foo-1.0.gir: libfoo.la foo.c foo.h utility-1.0.gir $(SCANNER_BIN) $(SCANNER_LIBS) Makefile
- $(CHECK_DEBUG) $(SCANNER) \
- --include=GObject-2.0 \
- --include=utility-1.0 \
- --libtool="$(LIBTOOL)" \
- --library=foo \
- --namespace=foo \
- --nsversion=1.0 \
- --pkg gobject-2.0 \
- $(srcdir)/foo.h $(srcdir)/foo.c \
- --output $@
+foo-1.0.gir: utility-1.0.gir libfoo.la
+foo_1_0_gir_PACKAGES = gobject-2.0
+foo_1_0_gir_LIBS = libfoo.la
+foo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 utility-1.0
+foo_1_0_gir_FILES = $(srcdir)/foo.h $(srcdir)/foo.c
+foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h"
GIRS += foo-1.0.gir
-utility-1.0.gir: libutility.la utility.h $(SCANNER_BIN) $(SCANNER_LIBS) Makefile
- $(CHECK_DEBUG) $(SCANNER) \
- --include=GObject-2.0 \
- --libtool="$(LIBTOOL)" \
- --library=utility \
- --namespace=utility \
- --nsversion=1.0 \
- --pkg gobject-2.0 \
- $(libutility_la_SOURCES) \
- --output $@
+utility-1.0.gir: libutility.la
+utility_1_0_gir_PACKAGES = gobject-2.0
+utility_1_0_gir_LIBS = libutility.la
+utility_1_0_gir_INCLUDES = GObject-2.0
+utility_1_0_gir_FILES = $(libutility_la_SOURCES)
GIRS += utility-1.0.gir
# This one tests different --namespace and --strip-prefix
-GtkFrob-1.0.gir: libgtkfrob.la gtkfrob.h $(SCANNER_BIN) $(SCANNER_LIBS) Makefile
- $(CHECK_DEBUG) $(SCANNER) \
- --include=GObject-2.0 \
- --libtool="$(LIBTOOL)" \
- --library=gtkfrob \
- --namespace=GtkFrob \
- --strip-prefix=Gtk \
- --nsversion=1.0 \
- --pkg gobject-2.0 \
- $(libgtkfrob_la_SOURCES) \
- --output $@
+GtkFrob-1.0.gir: libgtkfrob.la
+GtkFrob_1_0_gir_PACKAGES = gobject-2.0
+GtkFrob_1_0_gir_LIBS = libgtkfrob.la
+GtkFrob_1_0_gir_INCLUDES = GObject-2.0
+GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES)
+GtkFrob_1_0_gir_SCANNERFLAGS = --strip-prefix=Gtk
GIRS += GtkFrob-1.0.gir
noinst_PROGRAMS = barapp
barapp_SOURCES = $(srcdir)/barapp.c $(srcdir)/barapp.h
-barapp_LDADD = $(top_builddir)/girepository/libgirepository.la
+barapp_LDADD = $(top_builddir)/girepository/libgirepository-1.0.la
barapp_LDFLAGS = -export-dynamic
-BarApp-1.0.gir: barapp $(SCANNER_BIN) $(SCANNER_LIBS) Makefile
- $(SCANNER) \
- --include=GObject-2.0 \
- --libtool="$(LIBTOOL)" \
- --program=./barapp \
- --namespace=BarApp \
- --strip-prefix=Bar \
- --nsversion=1.0 \
- --pkg gobject-2.0 \
- $(barapp_SOURCES) \
- --output $@
+
+BarApp-1.0.gir: barapp
+BarApp_1_0_gir_PACKAGES = gobject-2.0
+BarApp_1_0_gir_PROGRAM = ./barapp
+BarApp_1_0_gir_INCLUDES = GObject-2.0
+BarApp_1_0_gir_FILES = $(barapp_SOURCES)
+BarApp_1_0_gir_SCANNERFLAGS = --strip-prefix=Bar
GIRS += BarApp-1.0.gir
pre-check:
@if test "$(top_builddir)" != "$(top_srcdir)"; then \
cp -f $(top_srcdir)/giscanner/*.py $(top_builddir)/giscanner; \
fi
- @echo "Running scanner checks..."
post-check:
@echo "========================"
fi
%.gir.check: %.gir
- @diff -u -U 10 $(srcdir)/$*-expected.gir $*.gir && echo "* $*.gir"
+ @diff -u -U 10 $(srcdir)/$*-expected.gir $*.gir && echo " TEST $*.gir"
# stop %.typelib rule from building %-expected.tgir (via %-expected.typelib)
%-expected.typelib:
@true
-%.typelib: %.gir $(top_builddir)/tools/g-ir-compiler$(EXEEXT) Makefile
- $(top_builddir)/tools/g-ir-compiler --includedir=. --includedir=$(top_builddir)/gir $< -o $@
-
%.tgir: %.typelib $(top_builddir)/tools/g-ir-generate$(EXEEXT) Makefile
- $(DEBUG) $(top_builddir)/tools/g-ir-generate --includedir=. --includedir=$(top_builddir)/gir $< -o $@
+ $(AM_V_GEN) $(top_builddir)/tools/g-ir-generate --includedir=. --includedir=$(top_builddir)/gir $< -o $@
%.tgir.check: %.tgir
- @diff -u -U 10 $(srcdir)/$*-expected.tgir $*.tgir && echo "* $*.tgir"
+ @diff -u -U 10 $(srcdir)/$*-expected.tgir $*.tgir; \
+ if test "$$?" = "0"; then \
+ echo " TEST $*.tgir"; \
+ rm -f $*.tgir; \
+ else \
+ exit 1; \
+ fi
+
+distclean-local:
+ @if test "$(top_builddir)" != "$(top_srcdir)"; then \
+ rm -f $(top_builddir)/tests/scanner/*.tgir; \
+ fi
check-local: pre-check
check-local: $(CHECKGIRS) $(CHECKTGIRS) $(TYPELIBS)
-CLEANFILES += $(TGIRS)
check-local: post-check