1SUMMARY="GL Vendor-Neutral Dispatch Library"
2DESCRIPTION="libglvnd translates Haiku's OpenGL kit to a modern EGL-based graphics rendering \
3pipeline."
4HOMEPAGE="http://gitlab.freedesktop.org/glvnd/libglvnd"
5COPYRIGHT="2013, NVIDIA CORPORATION"
6LICENSE="MIT"
7REVISION="4"
8SOURCE_URI="https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$portVersion/libglvnd-v$portVersion.tar.gz"
9SOURCE_DIR="libglvnd-v$portVersion"
10CHECKSUM_SHA256="2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d"
11PATCHES="libglvnd-${portVersion}.patchset"
12
13ARCHITECTURES="?all"
14SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86"
15
16PROVIDES="
17	libglvnd$secondaryArchSuffix = $portVersion
18	lib:libGL$secondaryArchSuffix = 1.0.0 compat >= 1
19	lib:libEGL$secondaryArchSuffix = 1.1.0 compat >= 1
20	lib:libglesv1_cm$secondaryArchSuffix
21	lib:libglesv2$secondaryArchSuffix
22	lib:libgldispatch$secondaryArchSuffix
23	lib:libopengl$secondaryArchSuffix
24	"
25REQUIRES="
26	haiku$secondaryArchSuffix
27	"
28
29PROVIDES_devel="
30	libglvnd${secondaryArchSuffix}_devel = $portVersion
31	devel:libGL$secondaryArchSuffix = 1.0.0 compat >= 1
32	devel:libEGL$secondaryArchSuffix = 1.1.0 compat >= 1
33	devel:libglesv1_cm$secondaryArchSuffix
34	devel:libglesv2$secondaryArchSuffix
35	devel:libgldispatch$secondaryArchSuffix
36	devel:libopengl$secondaryArchSuffix
37	"
38REQUIRES_devel="
39	libglvnd$secondaryArchSuffix == $portVersion base
40	"
41
42BUILD_REQUIRES="
43	haiku${secondaryArchSuffix}_devel
44	"
45BUILD_PREREQUIRES="
46	cmd:awk
47	cmd:gcc$secondaryArchSuffix
48	cmd:ld$secondaryArchSuffix
49	cmd:meson
50	cmd:ninja
51	cmd:sed
52	cmd:python3
53	"
54
55BUILD()
56{
57	meson --buildtype=release \
58		--prefix=$prefix --libdir=$libDir --datadir=$dataDir --bindir=$binDir\
59		--includedir=$includeDir/os/opengl --sysconfdir=$settingsDir --sbindir=$binDir \
60		--libexecdir=$libDir --localedir=$dataDir/locale \
61		./build
62	ninja -C build
63}
64
65INSTALL()
66{
67	ninja -C build install
68
69	# Fix a few misc header installation location
70	mv $includeDir/os/opengl/OpenGLKit.h $includeDir/os/OpenGLKit.h
71	mv $includeDir/os/opengl/opengl/GLView.h $includeDir/os/opengl/GLView.h
72	rm -rf $includeDir/os/opengl/opengl
73
74	prepareInstalledDevelLibs libGL libEGL libOpenGL libGLESv1_CM libGLESv2 libGLdispatch
75	fixPkgconfig
76
77	# Fix OpenGL kit location
78	sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/opengl.pc
79	sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/egl.pc
80	sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/gl.pc
81	sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/glesv1_cm.pc
82	sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/glesv2.pc
83	sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/libglvnd.pc
84
85	# Toss ports a few bones
86	# XXX: Is this a good idea?  it's more standard, but anything not using pkgconfig should be punished?
87	#for i in KHR GLES GLES2 GLES3 EGL GL; do
88	#	ln -s $includeDir/os/opengl/$i $includeDir/$i
89	#done
90
91	# devel package
92	packageEntries devel \
93		$developDir
94}
95
96TEST()
97{
98	ninja -C build test
99}
100