1SUMMARY="X.Org's C Bindings library"
2DESCRIPTION="XCB provides application binary interface compatibility with \
3both Xlib and XCB, providing an incremental porting path. XCB uses \
4the protocol layer of Xlib, but replaces the Xlib transport layer with \
5XCB, and provides access to the underlying XCB connection for direct use \
6of XCB.
7XCB allows an application to open a single connection to the Xdisplay server \
8and use both XCB and Xlib, possibly through a mixture of libraries designed \
9for one or the other."
10HOMEPAGE="https://xcb.freedesktop.org/"
11COPYRIGHT="2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett"
12LICENSE="MIT (no promotion)"
13REVISION="2"
14SOURCE_URI="https://xcb.freedesktop.org/dist/libxcb-$portVersion.tar.bz2"
15CHECKSUM_SHA256="a89fb7af7a11f43d2ce84a844a4b38df688c092bf4b67683aef179cdf2a647c4"
16PATCHES="libxcb-$portVersion.patchset"
17
18ARCHITECTURES="all !x86_gcc2"
19SECONDARY_ARCHITECTURES="x86"
20
21versionedXcbLibs="
22	libxcb
23	libxcb_randr
24	libxcb_sync
25	libxcb_xinput
26	libxcb_xkb
27	"
28libVersion=0.0.0
29libxcbVersion=1.1.0
30libxcb_randrVersion=0.1.0
31libxcb_syncVersion=1.0.0
32libxcb_xinputVersion=0.1.0
33libxcb_xkbVersion=1.0.0
34for i in lib $versionedXcbLibs; do
35	eval "${i}VersionCompat=\"\$${i}Version compat >= \${${i}Version%%.*}\""
36done
37otherXcbLibs="
38	libxcb_composite
39	libxcb_damage
40	libxcb_dpms
41	libxcb_dri2
42	libxcb_dri3
43	libxcb_glx
44	libxcb_present
45	libxcb_record
46	libxcb_render
47	libxcb_res
48	libxcb_screensaver
49	libxcb_shape
50	libxcb_shm
51	libxcb_xf86dri
52	libxcb_xfixes
53	libxcb_xinerama
54	libxcb_xtest
55	libxcb_xv
56	libxcb_xvmc
57	"
58
59PROVIDES="
60	libxcb$secondaryArchSuffix = $portVersion
61	lib:libxcb$secondaryArchSuffix = $libxcbVersionCompat
62	lib:libxcb_composite$secondaryArchSuffix = $libVersionCompat
63	lib:libxcb_damage$secondaryArchSuffix = $libVersionCompat
64	lib:libxcb_dpms$secondaryArchSuffix = $libVersionCompat
65	lib:libxcb_dri2$secondaryArchSuffix = $libVersionCompat
66	lib:libxcb_dri3$secondaryArchSuffix = $libVersionCompat
67	lib:libxcb_glx$secondaryArchSuffix = $libVersionCompat
68	lib:libxcb_present$secondaryArchSuffix = $libVersionCompat
69	lib:libxcb_randr$secondaryArchSuffix = $libxcb_randrVersionCompat
70	lib:libxcb_record$secondaryArchSuffix = $libVersionCompat
71	lib:libxcb_render$secondaryArchSuffix = $libVersionCompat
72	lib:libxcb_res$secondaryArchSuffix = $libVersionCompat
73	lib:libxcb_screensaver$secondaryArchSuffix = $libVersionCompat
74	lib:libxcb_shape$secondaryArchSuffix = $libVersionCompat
75	lib:libxcb_shm$secondaryArchSuffix = $libVersionCompat
76	lib:libxcb_sync$secondaryArchSuffix = $libxcb_syncVersionCompat
77	lib:libxcb_xf86dri$secondaryArchSuffix = $libVersionCompat
78	lib:libxcb_xfixes$secondaryArchSuffix = $libVersionCompat
79	lib:libxcb_xinerama$secondaryArchSuffix = $libVersionCompat
80	lib:libxcb_xinput$secondaryArchSuffix = $libxcb_xinputVersionCompat
81	lib:libxcb_xkb$secondaryArchSuffix = $libxcb_xkbVersionCompat
82	lib:libxcb_xtest$secondaryArchSuffix = $libVersionCompat
83	lib:libxcb_xv$secondaryArchSuffix = $libVersionCompat
84	lib:libxcb_xvmc$secondaryArchSuffix = $libVersionCompat
85	"
86REQUIRES="
87	haiku$secondaryArchSuffix
88	lib:libcheck$secondaryArchSuffix
89	lib:libXau$secondaryArchSuffix
90	lib:libXdmcp$secondaryArchSuffix
91	"
92
93PROVIDES_devel="
94	libxcb${secondaryArchSuffix}_devel = $portVersion
95	devel:libxcb$secondaryArchSuffix = $libxcbVersionCompat
96	devel:libxcb_composite$secondaryArchSuffix = $libVersionCompat
97	devel:libxcb_damage$secondaryArchSuffix = $libVersionCompat
98	devel:libxcb_dpms$secondaryArchSuffix = $libVersionCompat
99	devel:libxcb_dri2$secondaryArchSuffix = $libVersionCompat
100	devel:libxcb_dri3$secondaryArchSuffix = $libVersionCompat
101	devel:libxcb_glx$secondaryArchSuffix = $libVersionCompat
102	devel:libxcb_present$secondaryArchSuffix = $libVersionCompat
103	devel:libxcb_randr$secondaryArchSuffix = $libxcb_randrVersionCompat
104	devel:libxcb_record$secondaryArchSuffix = $libVersionCompat
105	devel:libxcb_render$secondaryArchSuffix = $libVersionCompat
106	devel:libxcb_res$secondaryArchSuffix = $libVersionCompat
107	devel:libxcb_screensaver$secondaryArchSuffix = $libVersionCompat
108	devel:libxcb_shape$secondaryArchSuffix = $libVersionCompat
109	devel:libxcb_shm$secondaryArchSuffix = $libVersionCompat
110	devel:libxcb_sync$secondaryArchSuffix = $libxcb_syncVersionCompat
111	devel:libxcb_xf86dri$secondaryArchSuffix = $libVersionCompat
112	devel:libxcb_xfixes$secondaryArchSuffix = $libVersionCompat
113	devel:libxcb_xinerama$secondaryArchSuffix = $libVersionCompat
114	devel:libxcb_xinput$secondaryArchSuffix = $libxcb_xinputVersionCompat
115	devel:libxcb_xkb$secondaryArchSuffix = $libxcb_xkbVersionCompat
116	devel:libxcb_xtest$secondaryArchSuffix = $libVersionCompat
117	devel:libxcb_xv$secondaryArchSuffix = $libVersionCompat
118	devel:libxcb_xvmc$secondaryArchSuffix = $libVersionCompat
119	"
120REQUIRES_devel="
121	libxcb$secondaryArchSuffix == $portVersion base
122	devel:libpthread_stubs
123	devel:libXau$secondaryArchSuffix
124	devel:libXdmcp$secondaryArchSuffix
125	devel:xcb_proto
126	"
127
128BUILD_REQUIRES="
129	haiku${secondaryArchSuffix}_devel
130	devel:libcheck$secondaryArchSuffix
131	devel:libpthread_stubs
132	devel:libXau$secondaryArchSuffix
133	devel:libXdmcp$secondaryArchSuffix
134	devel:util_macros
135	devel:xcb_proto
136	devel:xproto
137	"
138BUILD_PREREQUIRES="
139	cmd:aclocal
140	cmd:autoconf
141#	cmd:dot$secondaryArchSuffix
142#	cmd:doxygen
143	cmd:gcc$secondaryArchSuffix
144	cmd:libtoolize$secondaryArchSuffix
145	cmd:make
146	cmd:pkg_config$secondaryArchSuffix
147	cmd:python
148	cmd:xsltproc
149	"
150
151debugList=(
152	"$libDir"/libxcb.so.$libxcbVersion
153	"$libDir"/libxcb-randr.so.$libxcb_randrVersion
154	"$libDir"/libxcb-sync.so.$libxcb_syncVersion
155	"$libDir"/libxcb-xinput.so.$libxcb_xinputVersion
156	"$libDir"/libxcb-xkb.so.$libxcb_xkbVersion
157	)
158for i in $otherXcbLibs; do
159	debugList+=("$libDir"/${i/_/-}.so.$libVersion)
160done
161defineDebugInfoPackage libxcb$secondaryArchSuffix "${debugList[@]}"
162
163BUILD()
164{
165	autoreconf -vfi
166	runConfigure --omit-dirs docDir ./configure \
167		--docdir=$developDocDir \
168		--disable-static
169#	doxygen -u doc/xcb.doxygen
170	make $jobArgs
171}
172
173INSTALL()
174{
175	make install
176	install -d -m 755 "$developDocDir"
177	install -m 644 -t "$developDocDir" README
178
179	# remove libtool library files
180	rm $libDir/libxcb*.la
181
182	prepareInstalledDevelLibs ${versionedXcbLibs//_/-} ${otherXcbLibs//_/-}
183	fixPkgconfig
184
185	if [ -n "$secondaryArchSuffix" ]; then
186		rm -rf $manDir
187		maybe_manDir_man3=
188	else
189		maybe_manDir_man3=$manDir/man3
190	fi
191
192	# devel package
193	packageEntries devel \
194		$developDir \
195		$maybe_manDir_man3
196
197#	remove the empty $documentationDir on primary architecture
198	rm -fr $documentationDir
199}
200
201TEST()
202{
203	make check
204}
205