WarnLib: New library for testing API that emits warnings
[platform/upstream/gobject-introspection.git] / tests / scanner / Makefile.am
1 NULL ?=
2
3 include $(top_srcdir)/common.mk
4 include $(top_srcdir)/Makefile.introspection
5
6 INTROSPECTION_SCANNER_ARGS += --warn-all
7
8 check_LTLIBRARIES = \
9         libsletter.la \
10         libannotation.la \
11         libtestinherit.la \
12         libfoo.la \
13         libutility.la \
14         libgtkfrob.la \
15         libgettype.la \
16         libregress.la \
17         libwarnlib.la \
18         $(NULL)
19
20 AM_CPPFLAGS = -I$(top_srcdir)/girepository
21 AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS)
22 # -rpath needed to force libtool to build a shared library for a check_LTLIBRARIES
23 # target. See http://lists.gnu.org/archive/html/automake/2005-10/msg00107.html
24 AM_LDFLAGS = -rpath /unused -avoid-version
25 LIBS = $(GOBJECT_LIBS) $(GTHREAD_LIBS)
26
27 libsletter_la_SOURCES = $(srcdir)/sletter.c $(srcdir)/sletter.h
28 libsletter_la_LIBADD = $(GIO_LIBS)
29 libsletter_la_CFLAGS = $(AM_CFLAGS)
30 libsletter_la_LDFLAGS = $(AM_LDFLAGS)
31
32 libannotation_la_SOURCES = $(srcdir)/annotation.c $(srcdir)/annotation.h
33 libtestinherit_la_SOURCES = $(srcdir)/drawable.c $(srcdir)/drawable.h
34 libfoo_la_SOURCES = $(srcdir)/foo.c $(srcdir)/foo.h
35 libfoo_la_LIBADD = $(top_builddir)/libgirepository-1.0.la
36 libutility_la_SOURCES = $(srcdir)/utility.c $(srcdir)/utility.h
37 libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h
38 libregress_la_SOURCES = $(srcdir)/regress.c $(srcdir)/regress.h
39 libregress_la_LIBADD = $(GIO_LIBS) $(CAIRO_LIBS)
40 libwarnlib_la_CFLAGS = $(AM_CFLAGS)
41 libwarnlib_la_SOURCES = $(srcdir)/warnlib.c $(srcdir)/warnlib.h
42 libwarnlib_la_LIBADD = $(GIO_LIBS)
43 libwarnlib_la_LDFLAGS = -export-symbols-regex '^warnlib_' -no-undefined
44 libgettype_la_SOURCES = $(srcdir)/gettype.c $(srcdir)/gettype.h
45
46 testsdir = $(datadir)/gobject-introspection-1.0/tests
47 tests_DATA = $(libregress_la_SOURCES) $(libwarnlib_la_SOURCES)
48
49 libregress_la_CFLAGS = $(AM_CFLAGS) $(CAIRO_CFLAGS)
50 libregress_la_LDFLAGS = $(AM_LDFLAGS)
51
52
53 if OS_WIN32
54 AM_LDFLAGS += -no-undefined
55 endif
56
57 # .gir --[scanner]-> .typelib
58 GIRS =
59 TYPELIBS = $(GIRS:.gir=.typelib)
60 CHECKGIRS = $(GIRS:.gir=.gir.check)
61 EXPECTEDGIRS = $(GIRS:.gir=-expected.gir)
62 INTROSPECTION_GIRS = $(GIRS)
63 CLEANFILES = $(TYPELIBS) $(GIRS)
64 EXTRA_DIST = $(EXPECTEDGIRS)
65
66 SLetter-1.0.gir: $(top_builddir)/Gio-2.0.gir libsletter.la
67 SLetter_1_0_gir_LIBS = libsletter.la
68 SLetter_1_0_gir_INCLUDES = Gio-2.0
69 SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES)
70 SLetter_1_0_gir_SCANNERFLAGS = --identifier-prefix=S --c-include="sletter.h" --warn-error
71 GIRS += SLetter-1.0.gir
72
73 Regress-1.0.gir: $(top_builddir)/Gio-2.0.gir libregress.la
74 Regress_1_0_gir_LIBS = libregress.la
75 Regress_1_0_gir_INCLUDES = cairo-1.0 Gio-2.0
76 Regress_1_0_gir_FILES = $(libregress_la_SOURCES)
77 Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" --warn-error
78 GIRS += Regress-1.0.gir
79
80 WarnLib-1.0.gir: $(top_builddir)/Gio-2.0.gir libwarnlib.la
81 WarnLib_1_0_gir_LIBS = libwarnlib.la
82 WarnLib_1_0_gir_INCLUDES = Gio-2.0
83 WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES)
84 WarnLib_1_0_gir_SCANNERFLAGS = --c-include="warnlib.h"
85 GIRS += WarnLib-1.0.gir
86
87 Annotation-1.0.gir: Utility-1.0.gir libannotation.la
88 Annotation_1_0_gir_PACKAGES = gobject-2.0
89 Annotation_1_0_gir_LIBS = libannotation.la
90 Annotation_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0
91 Annotation_1_0_gir_FILES = $(libannotation_la_SOURCES)
92 Annotation_1_0_gir_SCANNERFLAGS = --c-include="annotation.h" --warn-error
93 GIRS += Annotation-1.0.gir
94
95 TestInherit-1.0.gir: Utility-1.0.gir libtestinherit.la
96 TestInherit_1_0_gir_PACKAGES = gobject-2.0
97 TestInherit_1_0_gir_LIBS = libtestinherit.la
98 TestInherit_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0
99 TestInherit_1_0_gir_FILES = $(libtestinherit_la_SOURCES)
100 TestInherit_1_0_gir_SCANNERFLAGS = --c-include="drawable.h" --warn-error
101 GIRS += TestInherit-1.0.gir
102
103 Foo-1.0.gir: Utility-1.0.gir libfoo.la
104 Foo_1_0_gir_PACKAGES = gobject-2.0
105 Foo_1_0_gir_LIBS = libfoo.la
106 Foo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 Utility-1.0
107 Foo_1_0_gir_FILES = $(srcdir)/foo.h $(srcdir)/foo.c
108 Foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h" --warn-error
109 GIRS += Foo-1.0.gir
110
111 Utility-1.0.gir: libutility.la
112 Utility_1_0_gir_PACKAGES = gobject-2.0
113 Utility_1_0_gir_LIBS = libutility.la
114 Utility_1_0_gir_INCLUDES = GObject-2.0
115 Utility_1_0_gir_FILES = $(libutility_la_SOURCES)
116 Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" --warn-error
117 GIRS += Utility-1.0.gir
118
119 # This one tests different --namespace and --strip-prefix
120 GtkFrob-1.0.gir: libgtkfrob.la
121 GtkFrob_1_0_gir_PACKAGES = gobject-2.0
122 GtkFrob_1_0_gir_LIBS = libgtkfrob.la
123 GtkFrob_1_0_gir_INCLUDES = GObject-2.0
124 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES)
125 GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error
126 GIRS += GtkFrob-1.0.gir
127
128 # This tests that functions called _get_type are only matched if they have no
129 # arguments and return GType
130 GetType-1.0.gir: libgettype.la
131 GetType_1_0_gir_PACKAGES = gobject-2.0
132 GetType_1_0_gir_LIBS = libgettype.la
133 GetType_1_0_gir_INCLUDES = GObject-2.0
134 GetType_1_0_gir_FILES = $(libgettype_la_SOURCES)
135 GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype
136 GIRS += GetType-1.0.gir
137
138 if !OS_WIN32
139 check_PROGRAMS = barapp
140
141 barapp_SOURCES = $(srcdir)/barapp.c $(srcdir)/barapp.h
142 barapp_LDADD = $(top_builddir)/libgirepository-1.0.la
143 barapp_LDFLAGS = -export-dynamic
144
145 Bar-1.0.gir: barapp
146 Bar_1_0_gir_PACKAGES = gobject-2.0
147 Bar_1_0_gir_PROGRAM = ./barapp
148 Bar_1_0_gir_INCLUDES = GObject-2.0
149 Bar_1_0_gir_FILES = $(barapp_SOURCES)
150 Bar_1_0_gir_SCANNERFLAGS = --accept-unprefixed
151 GIRS += Bar-1.0.gir
152 endif
153
154 EXTRA_DIST += headeronly.h
155
156 Headeronly-1.0.gir: headeronly.h
157         $(AM_V_GEN) $(INTROSPECTION_SCANNER) $(INTROSPECTION_SCANNER_ARGS) --warn-all --warn-error --reparse-validate --namespace=Headeronly --nsversion=1.0 --header-only --output=$@ $<
158
159 %.gir.check: %.gir
160         @diff -u -U 10 $(srcdir)/$*-expected.gir $*.gir && echo "  TEST  $*.gir"
161
162 check-local: Headeronly-1.0.gir $(CHECKGIRS) $(TYPELIBS)