1SUMMARY="Introspection system for GObject-based libraries"
2DESCRIPTION="GObject introspection is a middleware layer between C libraries \
3(using GObject) and language bindings. The C library can be scanned at \
4compile time and generate a metadata file, in addition to the actual native \
5C library. Then at runtime, language bindings can read this metadata and \
6automatically provide bindings to call into the C library."
7HOMEPAGE="https://wiki.gnome.org/Projects/GObjectIntrospection"
8COPYRIGHT="Colin Walters
9	Johan Dahlin
10	Matthias Clasen (girepository)
11	J��rg Billeter (scanner)"
12LICENSE="GNU LGPL v2
13	GNU GPL v2
14	MIT"
15REVISION="1"
16SOURCE_URI="http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${portVersion%.*}/gobject-introspection-$portVersion.tar.xz"
17CHECKSUM_SHA256="bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4"
18SOURCE_DIR="gobject-introspection-$portVersion"
19PATCHES="gobject_introspection-$portVersion.patchset"
20
21ARCHITECTURES="all !x86_gcc2"
22SECONDARY_ARCHITECTURES="x86"
23
24# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
25commandSuffix=$secondaryArchSuffix
26commandBinDir=$binDir
27if [ "$targetArchitecture" = x86_gcc2 ]; then
28    commandSuffix=
29    commandBinDir=$prefix/bin
30fi
31
32libVersion="1.0.0"
33libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
34
35PROVIDES="
36	gobject_introspection$secondaryArchSuffix = $portVersion
37	cmd:g_ir_annotation_tool$commandSuffix
38	cmd:g_ir_compiler$commandSuffix
39	cmd:g_ir_generate$commandSuffix
40	cmd:g_ir_inspect$commandSuffix
41	cmd:g_ir_scanner$commandSuffix
42	lib:libgirepository_1.0$secondaryArchSuffix = $libVersionCompat
43	"
44REQUIRES="
45	haiku$secondaryArchSuffix
46	lib:libffi$secondaryArchSuffix
47	lib:libgio_2.0$secondaryArchSuffix
48	lib:libglib_2.0$secondaryArchSuffix
49	lib:libgmodule_2.0$secondaryArchSuffix
50	lib:libgobject_2.0$secondaryArchSuffix
51	lib:libintl$secondaryArchSuffix
52	lib:libxml2$secondaryArchSuffix
53	"
54
55PROVIDES_devel="
56	gobject_introspection${secondaryArchSuffix}_devel = $portVersion
57	devel:libgirepository_1.0$secondaryArchSuffix = $libVersionCompat
58	"
59REQUIRES_devel="
60	gobject_introspection$secondaryArchSuffix == $portVersion base
61	devel:libffi$secondaryArchSuffix
62	devel:libglib_2.0$secondaryArchSuffix
63	devel:libpcre$secondaryArchSuffix
64	"
65
66BUILD_REQUIRES="
67	haiku${secondaryArchSuffix}_devel
68	devel:libffi$secondaryArchSuffix
69	devel:libgio_2.0$secondaryArchSuffix
70	devel:libglib_2.0$secondaryArchSuffix
71	devel:libgmodule_2.0$secondaryArchSuffix
72	devel:libgobject_2.0$secondaryArchSuffix
73	devel:libxml2$secondaryArchSuffix
74	"
75BUILD_PREREQUIRES="
76	cmd:aclocal
77	cmd:autoconf
78	cmd:bison
79	cmd:flex
80	cmd:gcc$secondaryArchSuffix
81	cmd:ld$secondaryArchSuffix
82	cmd:libtoolize$secondaryArchSuffix
83	cmd:make
84	cmd:meson
85	cmd:ninja
86	cmd:pkg_config$secondaryArchSuffix
87	cmd:python3
88	cmd:which
89	"
90
91defineDebugInfoPackage gobject_introspection$secondaryArchSuffix \
92	"$libDir"/libgirepository-1.0.so.$libVersion
93
94BUILD()
95{
96	meson build --buildtype=release \
97		--prefix=$prefix \
98		--includedir=$includeDir \
99		--datadir=$dataDir \
100		--libdir=$libDir \
101		--mandir=$manDir
102
103	ninja -C build $jobArgs
104}
105
106INSTALL()
107{
108	ninja -C build install
109
110	prepareInstalledDevelLib libgirepository-1.0
111	fixPkgconfig
112
113	# devel package
114	packageEntries devel \
115		"$developDir"
116}
117
118TEST()
119{
120	# tests fails on Regress-1.0.gir, but as it looks
121	# it is known to fail there (doesn't break the tests)
122	ninja -C build test
123}
124