mirror of
https://github.com/termux/termux-packages.git
synced 2025-03-04 08:18:54 +00:00
99 lines
3.2 KiB
Bash
99 lines
3.2 KiB
Bash
TERMUX_PKG_HOMEPAGE=https://virgil3d.github.io/
|
|
TERMUX_PKG_DESCRIPTION="A virtual 3D GPU for use inside qemu virtual machines over OpenGLES libraries on Android"
|
|
TERMUX_PKG_LICENSE="MIT"
|
|
TERMUX_PKG_MAINTAINER="@licy183"
|
|
TERMUX_PKG_VERSION="1.0.1"
|
|
_LIBEPOXY_VERSION="1.5.10"
|
|
TERMUX_PKG_REVISION=3
|
|
TERMUX_PKG_SRCURL=(
|
|
https://gitlab.freedesktop.org/virgl/virglrenderer/-/archive/virglrenderer-${TERMUX_PKG_VERSION}/virglrenderer-virglrenderer-${TERMUX_PKG_VERSION}.tar.gz
|
|
https://github.com/anholt/libepoxy/archive/refs/tags/${_LIBEPOXY_VERSION}.tar.gz
|
|
)
|
|
TERMUX_PKG_SHA256=(
|
|
446ab3e265f574ec598e77bdfbf0616ee3c77361f0574bec733ba4bac4df730a
|
|
a7ced37f4102b745ac86d6a70a9da399cc139ff168ba6b8002b4d8d43c900c15
|
|
)
|
|
TERMUX_PKG_DEPENDS="angle-android"
|
|
TERMUX_PKG_HOSTBUILD=true
|
|
|
|
termux_step_post_get_source() {
|
|
mv libepoxy-${_LIBEPOXY_VERSION} libepoxy
|
|
}
|
|
|
|
termux_step_host_build() {
|
|
# This package should use the Android NDK toolchain to compile, not
|
|
# our custom toolchain, so I'd like to compile it in the hostbuild step.
|
|
export PATH="$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH"
|
|
export CCTERMUX_HOST_PLATFORM=$TERMUX_HOST_PLATFORM$TERMUX_PKG_API_LEVEL
|
|
if [ $TERMUX_ARCH = arm ]; then
|
|
CCTERMUX_HOST_PLATFORM=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL
|
|
fi
|
|
|
|
local _INSTALL_PREFIX=$TERMUX_PREFIX/opt/$TERMUX_PKG_NAME
|
|
|
|
PKG_CONFIG="$TERMUX_PKG_TMPDIR/host-build-pkg-config"
|
|
local _HOST_PKGCONFIG=$(command -v pkg-config)
|
|
cat > $PKG_CONFIG <<-HERE
|
|
#!/bin/sh
|
|
export PKG_CONFIG_DIR=
|
|
export PKG_CONFIG_LIBDIR=$_INSTALL_PREFIX/lib/pkgconfig
|
|
exec $_HOST_PKGCONFIG "\$@"
|
|
HERE
|
|
chmod +x $PKG_CONFIG
|
|
|
|
AR=$(command -v llvm-ar)
|
|
CC=$(command -v $CCTERMUX_HOST_PLATFORM-clang)
|
|
CXX=$(command -v $CCTERMUX_HOST_PLATFORM-clang++)
|
|
LD=$(command -v ld.lld)
|
|
CFLAGS=""
|
|
CPPFLAGS=""
|
|
CXXFLAGS=""
|
|
LDFLAGS="-Wl,-rpath=$_INSTALL_PREFIX/lib"
|
|
STRIP=$(command -v llvm-strip)
|
|
termux_setup_meson
|
|
|
|
# Compile libepoxy
|
|
mkdir -p libepoxy-build
|
|
$TERMUX_MESON $TERMUX_PKG_SRCDIR/libepoxy libepoxy-build \
|
|
--cross-file $TERMUX_MESON_CROSSFILE \
|
|
--prefix=$_INSTALL_PREFIX \
|
|
--libdir lib \
|
|
-Degl=yes -Dglx=no -Dx11=false
|
|
ninja -C libepoxy-build install -j $TERMUX_PKG_MAKE_PROCESSES
|
|
|
|
# Compile virglrenderer
|
|
mkdir -p virglrenderer-build
|
|
$TERMUX_MESON $TERMUX_PKG_SRCDIR virglrenderer-build \
|
|
--cross-file $TERMUX_MESON_CROSSFILE \
|
|
--prefix=$_INSTALL_PREFIX \
|
|
--libdir lib \
|
|
-Dplatforms=egl
|
|
ninja -C virglrenderer-build install -j $TERMUX_PKG_MAKE_PROCESSES
|
|
|
|
# Move our virglrenderer binary to regular bin directory.
|
|
mv $_INSTALL_PREFIX/bin/virgl_test_server $TERMUX_PREFIX/bin/virgl_test_server_android
|
|
|
|
# Cleanup.
|
|
rm -rf $_INSTALL_PREFIX/{bin,include,lib/pkgconfig}
|
|
}
|
|
|
|
termux_step_configure() {
|
|
# Remove this marker all the time, as this package is architecture-specific
|
|
rm -rf $TERMUX_HOSTBUILD_MARKER
|
|
}
|
|
|
|
termux_step_make() {
|
|
:
|
|
}
|
|
|
|
termux_step_make_install() {
|
|
:
|
|
}
|
|
|
|
termux_step_install_license() {
|
|
mkdir -p $TERMUX_PREFIX/share/doc/$TERMUX_PKG_NAME
|
|
cp $TERMUX_PKG_SRCDIR/COPYING $TERMUX_PREFIX/share/doc/$TERMUX_PKG_NAME/COPYING-virglrenderer
|
|
cp $TERMUX_PKG_SRCDIR/libepoxy/COPYING $TERMUX_PREFIX/share/doc/$TERMUX_PKG_NAME/COPYING-libepoxy
|
|
cp $TERMUX_PKG_BUILDER_DIR/COPYING-gl4es $TERMUX_PREFIX/share/doc/$TERMUX_PKG_NAME/COPYING-gl4es
|
|
}
|