termux-packages/packages/mesa/build.sh

66 lines
2.0 KiB
Bash

TERMUX_PKG_HOMEPAGE=https://www.mesa3d.org
TERMUX_PKG_DESCRIPTION="An open-source implementation of the OpenGL specification"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_LICENSE_FILE="docs/license.rst"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=22.3.3
TERMUX_PKG_SRCURL=https://archive.mesa3d.org/mesa-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=bed799788bf2bd9ef079d97cd8e09348bf53cb086818578e40773b2b17812922
TERMUX_PKG_DEPENDS="libandroid-shmem, libc++, libdrm, libexpat, libx11, libxext, libxfixes, libxshmfence, libxxf86vm, ncurses, zlib, zstd"
TERMUX_PKG_SUGGESTS="mesa-dev"
TERMUX_PKG_BUILD_DEPENDS="libllvm-static, libxrandr, llvm, llvm-tools, mlir, xorgproto"
TERMUX_PKG_CONFLICTS="libmesa, ndk-sysroot (<= 25b)"
TERMUX_PKG_REPLACES="libmesa"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--cmake-prefix-path $TERMUX_PREFIX
-Dcpp_rtti=false
-Dgbm=enabled
-Dopengl=true
-Degl=enabled
-Degl-native-platform=x11
-Dgles1=enabled
-Dgles2=enabled
-Ddri3=enabled
-Dglx=dri
-Dllvm=enabled
-Dshared-llvm=disabled
-Dplatforms=x11
-Dgallium-drivers=swrast
-Dvulkan-drivers=
-Dosmesa=true
"
termux_step_pre_configure() {
termux_setup_cmake
CPPFLAGS+=" -D__USE_GNU"
LDFLAGS+=" -landroid-shmem"
_WRAPPER_BIN=$TERMUX_PKG_BUILDDIR/_wrapper/bin
mkdir -p $_WRAPPER_BIN
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then
sed 's|@CMAKE@|'"$(command -v cmake)"'|g' \
$TERMUX_PKG_BUILDER_DIR/cmake-wrapper.in \
> $_WRAPPER_BIN/cmake
chmod 0700 $_WRAPPER_BIN/cmake
fi
export PATH=$_WRAPPER_BIN:$PATH
}
termux_step_post_configure() {
rm -f $_WRAPPER_BIN/cmake
}
termux_step_post_make_install() {
# A bunch of programs in the wild assume that the name of OpenGL shared
# library is `libGL.so.1` and try to dlopen(3) it. In fact `sdl2` does
# this. So please do not ever remove the symlink.
ln -sf libGL.so ${TERMUX_PREFIX}/lib/libGL.so.1
ln -sf libEGL.so ${TERMUX_PREFIX}/lib/libEGL.so.1
ln -sf libGLESv1_CM.so ${TERMUX_PREFIX}/lib/libGLESv1_CM.so.1
ln -sf libGLESv2.so ${TERMUX_PREFIX}/lib/libGLESv2.so.2
patch -p1 -d $TERMUX_PREFIX/include < $TERMUX_PKG_BUILDER_DIR/egl-not-android.diff
}