fccbd352ffae148d90789974bec129e0201cdb21
[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 SUBDIRS = . annotationparser
7
8 INTROSPECTION_SCANNER_ARGS += --warn-all --reparse-validate
9
10 CLEANFILES =
11
12 EXTRA_LTLIBRARIES = \
13         libsletter.la \
14         libutility.la \
15         libgtkfrob.la \
16         libgettype.la \
17         libregress.la \
18         libwarnlib.la \
19         libtypedefs.la \
20         $(NULL)
21 CLEANFILES += $(EXTRA_LTLIBRARIES)
22
23 GI_SCANNER_CFLAGS = -I$(top_srcdir)/tests
24 AM_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_builddir)/girepository
25 AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) $(GI_SCANNER_CFLAGS) $(WARN_CFLAGS)
26 # -rpath needed to force libtool to build a shared library for a check_LTLIBRARIES
27 # target. See http://lists.gnu.org/archive/html/automake/2005-10/msg00107.html
28 AM_LDFLAGS = $(WARN_LDFLAGS) -rpath /unused -avoid-version
29 LIBS = $(GOBJECT_LIBS) $(GTHREAD_LIBS)
30
31 libsletter_la_SOURCES = sletter.c sletter.h
32 libsletter_la_LIBADD = $(GIO_LIBS)
33 libsletter_la_CFLAGS = $(AM_CFLAGS)
34 libsletter_la_LDFLAGS = $(AM_LDFLAGS)
35
36 libutility_la_SOURCES = utility.c utility.h
37 libgtkfrob_la_SOURCES = gtkfrob.c gtkfrob.h
38 libregress_la_SOURCES = \
39         regress.c regress.h \
40         annotation.c annotation.h \
41         foo.c foo.h \
42         drawable.c drawable.h \
43         $(NULL)
44 REGRESS_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f"
45 libregress_la_CPPFLAGS = -DREGRESS_PRINT_PREVIEW_COMMAND=\"$(REGRESS_PRINT_PREVIEW_COMMAND)\" \
46                          -DREGRESS_SOME_CHAR=\'c\'
47 libregress_la_LIBADD = $(GIO_LIBS)
48 if HAVE_CAIRO
49 libregress_la_LIBADD += $(CAIRO_LIBS)
50 endif
51 libwarnlib_la_CFLAGS = $(AM_CFLAGS)
52 libwarnlib_la_SOURCES = warnlib.c warnlib.h
53 libwarnlib_la_LIBADD = $(GIO_LIBS)
54 libwarnlib_la_LDFLAGS = -export-symbols-regex '^warnlib_' -no-undefined
55 libgettype_la_SOURCES = gettype.c gettype.h
56 libtypedefs_la_SOURCES = typedefs.c typedefs.h
57
58 testsdir = $(datadir)/gobject-introspection-1.0/tests
59 tests_DATA = $(libregress_la_SOURCES) $(libwarnlib_la_SOURCES) $(libutility_la_SOURCES)
60
61 if !HAVE_CAIRO
62 libregress_la_CPPFLAGS += -D_GI_DISABLE_CAIRO
63 endif
64 libregress_la_CFLAGS = $(AM_CFLAGS)
65 if HAVE_CAIRO
66 libregress_la_CFLAGS += $(CAIRO_CFLAGS)
67 endif
68 libregress_la_LDFLAGS = $(AM_LDFLAGS)
69
70
71 if OS_WIN32
72 AM_LDFLAGS += -no-undefined
73 endif
74
75 # .gir --[scanner]-> .typelib
76 GIRS =
77 TYPELIBS = $(GIRS:.gir=.typelib)
78 CHECKGIRS = $(GIRS)
79 EXPECTEDGIRS = $(GIRS:.gir=-expected.gir)
80 INTROSPECTION_GIRS = $(GIRS)
81 CLEANFILES += $(TYPELIBS) $(GIRS)
82 EXTRA_DIST = $(EXPECTEDGIRS)
83
84 SLetter-1.0.gir: $(top_builddir)/Gio-2.0.gir libsletter.la
85 SLetter_1_0_gir_LIBS = libsletter.la
86 SLetter_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
87 SLetter_1_0_gir_INCLUDES = Gio-2.0
88 SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES)
89 SLetter_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --identifier-prefix=S --c-include="sletter.h" --warn-error
90 GIRS += SLetter-1.0.gir
91
92 Regress-1.0.gir: $(top_builddir)/Gio-2.0.gir Utility-1.0.gir libregress.la
93 Regress_1_0_gir_LIBS = libregress.la
94 Regress_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
95 if !HAVE_CAIRO
96 Regress_1_0_gir_CFLAGS += -D_GI_DISABLE_CAIRO
97 endif
98 Regress_1_0_gir_INCLUDES = Gio-2.0 Utility-1.0
99 if HAVE_CAIRO
100 Regress_1_0_gir_INCLUDES += cairo-1.0 
101 endif
102 Regress_1_0_gir_FILES = $(libregress_la_SOURCES)
103 Regress_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --c-include="regress.h" --warn-error
104 GIRS += Regress-1.0.gir
105
106 WarnLib-1.0.gir: $(top_builddir)/Gio-2.0.gir libwarnlib.la
107 WarnLib_1_0_gir_LIBS = libwarnlib.la
108 WarnLib_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
109 WarnLib_1_0_gir_INCLUDES = Gio-2.0
110 WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES)
111 WarnLib_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --c-include="warnlib.h" --symbol-prefix=warnlib_
112 GIRS += WarnLib-1.0.gir
113
114 Utility-1.0.gir: libutility.la
115 Utility_1_0_gir_PACKAGES = gobject-2.0
116 Utility_1_0_gir_LIBS = libutility.la
117 Utility_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
118 Utility_1_0_gir_INCLUDES = GObject-2.0
119 Utility_1_0_gir_FILES = $(libutility_la_SOURCES)
120 Utility_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --c-include="utility.h" --warn-error
121 GIRS += Utility-1.0.gir
122
123 # This one tests different --namespace and --strip-prefix
124 GtkFrob-1.0.gir: libgtkfrob.la
125 GtkFrob_1_0_gir_PACKAGES = gobject-2.0
126 GtkFrob_1_0_gir_LIBS = libgtkfrob.la
127 GtkFrob_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
128 GtkFrob_1_0_gir_INCLUDES = GObject-2.0
129 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES)
130 GtkFrob_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error
131 GIRS += GtkFrob-1.0.gir
132
133 # This tests that functions called _get_type are only matched if they have no
134 # arguments and return GType
135 GetType-1.0.gir: libgettype.la
136 GetType_1_0_gir_PACKAGES = gobject-2.0
137 GetType_1_0_gir_LIBS = libgettype.la
138 GetType_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
139 GetType_1_0_gir_INCLUDES = GObject-2.0
140 GetType_1_0_gir_FILES = $(libgettype_la_SOURCES)
141 GetType_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype
142 GIRS += GetType-1.0.gir
143
144 Typedefs-1.0.gir: libtypedefs.la
145 Typedefs_1_0_gir_PACKAGES = gobject-2.0
146 Typedefs_1_0_gir_LIBS = libtypedefs.la
147 Typedefs_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
148 Typedefs_1_0_gir_INCLUDES = GObject-2.0
149 Typedefs_1_0_gir_FILES = $(libtypedefs_la_SOURCES)
150 Typedefs_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --c-include="typedefs.h" --identifier-prefix=Typedefs --symbol-prefix=typedefs
151 GIRS += Typedefs-1.0.gir
152
153 if !OS_WIN32
154 EXTRA_PROGRAMS = barapp
155 CLEANFILES += $(EXTRA_PROGRAMS)
156
157 barapp_SOURCES = barapp.c barapp.h
158 barapp_LDADD = $(top_builddir)/libgirepository-1.0.la
159 barapp_LDFLAGS = -export-dynamic
160
161 Bar-1.0.gir: barapp
162 Bar_1_0_gir_PACKAGES = gobject-2.0
163 Bar_1_0_gir_PROGRAM = ./barapp
164 Bar_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS)
165 Bar_1_0_gir_INCLUDES = GObject-2.0
166 Bar_1_0_gir_FILES = $(barapp_SOURCES)
167 Bar_1_0_gir_SCANNERFLAGS = $(INTROSPECTION_SCANNER_ARGS) --accept-unprefixed
168 GIRS += Bar-1.0.gir
169 endif
170
171 EXTRA_DIST += \
172         headeronly.h \
173         Headeronly-1.0-expected.gir
174 CLEANFILES += Headeronly-1.0.gir
175 CHECKGIRS += Headeronly-1.0.gir
176
177 Headeronly-1.0.gir: headeronly.h
178         $(AM_V_GEN) $(INTROSPECTION_SCANNER) $(INTROSPECTION_SCANNER_ARGS) --warn-all --warn-error --reparse-validate --namespace=Headeronly --nsversion=1.0 --header-only --output=$@ $<
179
180 EXTRA_DIST += \
181         identfilter.py \
182         identfilter.h \
183         Identfilter-1.0-expected.gir
184 CLEANFILES += Identfilter-1.0.gir
185 CHECKGIRS += Identfilter-1.0.gir
186
187 Identfilter-1.0.gir: identfilter.h
188         $(AM_V_GEN) $(INTROSPECTION_SCANNER) $(INTROSPECTION_SCANNER_ARGS) \
189                 --namespace=Identfilter --accept-unprefixed --nsversion=1.0 --header-only \
190                 --identifier-filter-cmd="$(PYTHON) $(srcdir)/identfilter.py" \
191                 --output=$@ $<
192
193 EXTRA_DIST += \
194         symbolfilter.py \
195         symbolfilter.h \
196         Symbolfilter-1.0-expected.gir
197 CLEANFILES += Symbolfilter-1.0.gir
198 CHECKGIRS += Symbolfilter-1.0.gir
199
200 Symbolfilter-1.0.gir: symbolfilter.h
201         $(AM_V_GEN) $(INTROSPECTION_SCANNER) $(INTROSPECTION_SCANNER_ARGS) \
202                 --warn-all --reparse-validate \
203                 --namespace=Symbolfilter --accept-unprefixed --nsversion=1.0 --header-only \
204                 --symbol-filter-cmd="$(PYTHON) $(srcdir)/symbolfilter.py" \
205                 --output=$@ $<
206
207 if BUILD_DOCTOOL
208 DOCGIRS = Regress-1.0.gir
209 CHECKDOCS = $(DOCGIRS:.gir=-C) $(DOCGIRS:.gir=-Python) $(DOCGIRS:.gir=-Gjs) $(DOCGIRS:.gir=-sections.txt)
210 MALLARD_DIRS = $(DOCGIRS:.gir=-C) $(DOCGIRS:.gir=-Python) $(DOCGIRS:.gir=-Gjs)
211 MALLARD_CLEAN = $(DOCGIRS:.gir=-C)/* $(DOCGIRS:.gir=-Python)/* $(DOCGIRS:.gir=-Gjs)/* $(DOCGIRS:.gir=-sections.txt)
212 EXPECTED_MALLARD_DIRS = $(MALLARD_DIRS:=-expected)
213 CLEANFILES += $(MALLARD_CLEAN)
214
215 %-C: %.gir
216         $(AM_V_GEN)rm -rf $(builddir)/$*-C
217         $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language C $*.gir -o $(builddir)/$*-C/
218
219 %-Python: %.gir
220         $(AM_V_GEN)rm -rf $(builddir)/$*-Python
221         $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language Python $*.gir -o $(builddir)/$*-Python/
222
223 %-Gjs: %.gir
224         $(AM_V_GEN)rm -rf $(builddir)/$*-Gjs
225         $(AM_V_at)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --language Gjs $*.gir -o $(builddir)/$*-Gjs/
226
227 %-sections.txt: %.gir
228         $(AM_V_GEN)$(INTROSPECTION_DOCTOOL) $(INTROSPECTION_DOCTOOL_ARGS) --write-sections-file $*.gir -o $@
229
230 else
231 CHECKDOCS =
232 endif
233
234 PYTESTS = \
235         test_ccompiler.py \
236         test_shlibs.py \
237         test_pkgconfig.py \
238         test_sourcescanner.py \
239         test_transformer.py \
240         test_xmlwriter.py \
241         test_docwriter.py \
242         test_scanner.py \
243         test_maintransformer.py
244
245 TESTS = $(CHECKGIRS) $(CHECKDOCS) $(TYPELIBS) $(PYTESTS)
246 TESTS_ENVIRONMENT = env srcdir=$(srcdir) top_srcdir=$(top_srcdir) builddir=$(builddir) top_builddir=$(top_builddir) \
247         CC="$(CC)" \
248         PYTHON=$(PYTHON) UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir)
249 LOG_COMPILER = $(PYTHON) $(top_srcdir)/tests/gi-tester
250
251 EXTRA_DIST += \
252         meson.build \
253         $(PYTESTS) \
254         Regress-1.0-C-expected                                  \
255         Regress-1.0-Gjs-expected                                \
256         Regress-1.0-Python-expected                             \
257         Regress-1.0-sections-expected.txt                       \
258         $(NULL)