Files
haikuports/sys-libs/libglvnd/libglvnd-1.7.0.recipe
2024-04-11 12:44:27 -05:00

100 lines
3.1 KiB
Bash

SUMMARY="GL Vendor-Neutral Dispatch Library"
DESCRIPTION="libglvnd translates Haiku's OpenGL kit to a modern EGL-based graphics rendering \
pipeline."
HOMEPAGE="http://gitlab.freedesktop.org/glvnd/libglvnd"
COPYRIGHT="2013, NVIDIA CORPORATION"
LICENSE="MIT"
REVISION="4"
SOURCE_URI="https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$portVersion/libglvnd-v$portVersion.tar.gz"
SOURCE_DIR="libglvnd-v$portVersion"
CHECKSUM_SHA256="2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d"
PATCHES="libglvnd-${portVersion}.patchset"
ARCHITECTURES="?all"
SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86"
PROVIDES="
libglvnd$secondaryArchSuffix = $portVersion
lib:libGL$secondaryArchSuffix = 1.0.0 compat >= 1
lib:libEGL$secondaryArchSuffix = 1.1.0 compat >= 1
lib:libglesv1_cm$secondaryArchSuffix
lib:libglesv2$secondaryArchSuffix
lib:libgldispatch$secondaryArchSuffix
lib:libopengl$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
libglvnd${secondaryArchSuffix}_devel = $portVersion
devel:libGL$secondaryArchSuffix = 1.0.0 compat >= 1
devel:libEGL$secondaryArchSuffix = 1.1.0 compat >= 1
devel:libglesv1_cm$secondaryArchSuffix
devel:libglesv2$secondaryArchSuffix
devel:libgldispatch$secondaryArchSuffix
devel:libopengl$secondaryArchSuffix
"
REQUIRES_devel="
libglvnd$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:awk
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:meson
cmd:ninja
cmd:sed
cmd:python3
"
BUILD()
{
meson --buildtype=release \
--prefix=$prefix --libdir=$libDir --datadir=$dataDir --bindir=$binDir\
--includedir=$includeDir/os/opengl --sysconfdir=$settingsDir --sbindir=$binDir \
--libexecdir=$libDir --localedir=$dataDir/locale \
./build
ninja -C build
}
INSTALL()
{
ninja -C build install
# Fix a few misc header installation location
mv $includeDir/os/opengl/OpenGLKit.h $includeDir/os/OpenGLKit.h
mv $includeDir/os/opengl/opengl/GLView.h $includeDir/os/opengl/GLView.h
rm -rf $includeDir/os/opengl/opengl
prepareInstalledDevelLibs libGL libEGL libOpenGL libGLESv1_CM libGLESv2 libGLdispatch
fixPkgconfig
# Fix OpenGL kit location
sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/opengl.pc
sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/egl.pc
sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/gl.pc
sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/glesv1_cm.pc
sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/glesv2.pc
sed -i 's/develop\/headers$/develop\/headers\/os\/opengl/' $installDestDir$developLibDir/pkgconfig/libglvnd.pc
# Toss ports a few bones
# XXX: Is this a good idea? it's more standard, but anything not using pkgconfig should be punished?
#for i in KHR GLES GLES2 GLES3 EGL GL; do
# ln -s $includeDir/os/opengl/$i $includeDir/$i
#done
# devel package
packageEntries devel \
$developDir
}
TEST()
{
ninja -C build test
}