vulkan-loader-android: cleanup
This commit is contained in:
parent
e2a1c50a93
commit
fed30915cf
|
@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Vulkan Loader for Android"
|
|||
TERMUX_PKG_LICENSE="NCSA"
|
||||
TERMUX_PKG_MAINTAINER="@termux"
|
||||
TERMUX_PKG_VERSION=25c
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SRCURL=https://dl.google.com/android/repository/android-ndk-r${TERMUX_PKG_VERSION}-linux.zip
|
||||
TERMUX_PKG_SHA256=769ee342ea75f80619d985c2da990c48b3d8eaf45f48783a2d48870d04b46108
|
||||
TERMUX_PKG_HOSTBUILD=true
|
||||
|
@ -13,21 +14,13 @@ TERMUX_PKG_BUILD_IN_SRC=true
|
|||
# https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/LoaderAndLayerInterface.md
|
||||
|
||||
# Android Vulkan Loader
|
||||
# https://source.android.com/devices/graphics/arch-vulkan
|
||||
# https://android.googlesource.com/platform/frameworks/native/+/master/vulkan
|
||||
|
||||
# Vulkan functions exported by Android Vulkan Loader depending on API version
|
||||
# https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/libvulkan/libvulkan.map.txt
|
||||
|
||||
# For now this package provides the NDK stub libvulkan.so (Termux current minimum API verison)
|
||||
# If system libvulkan.so is available, the stub will be replaced with symlink to system libvulkan.so
|
||||
|
||||
termux_step_host_build() {
|
||||
# it doesnt make sense to set vulkan.pc version to:
|
||||
# 1. vulkan-loader package version and bump this package every time the former updates
|
||||
# 2. NDK version since the stubs are the same between NDK releases AFAIK and isnt related to vulkan
|
||||
# so we use NDK provided vulkan header version but https://github.com/android/ndk/issues/1721
|
||||
# NDK shows that there is 2 different versions of vulkan headers
|
||||
# Use NDK provided vulkan header version
|
||||
# instead of vulkan-loader-generic vulkan.pc
|
||||
# https://github.com/android/ndk/issues/1721
|
||||
cat <<- EOF > vulkan_header_version.c
|
||||
#include <stdio.h>
|
||||
#include "vulkan/vulkan_core.h"
|
||||
|
@ -40,52 +33,57 @@ termux_step_host_build() {
|
|||
}
|
||||
EOF
|
||||
rm -fr ./vulkan
|
||||
cp -fr "$TERMUX_PKG_SRCDIR/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/vulkan" ./vulkan
|
||||
cp -fr "${TERMUX_PKG_SRCDIR}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/vulkan" ./vulkan
|
||||
cc vulkan_header_version.c -o vulkan_header_version
|
||||
}
|
||||
|
||||
termux_step_post_make_install() {
|
||||
install -v -Dm644 \
|
||||
"toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_API_LEVEL/libvulkan.so" \
|
||||
"$TERMUX_PREFIX/lib/libvulkan.so"
|
||||
"toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/${TERMUX_HOST_PLATFORM}/${TERMUX_PKG_API_LEVEL}/libvulkan.so" \
|
||||
"${TERMUX_PREFIX}/lib/libvulkan.so"
|
||||
|
||||
local vulkan_loader_version
|
||||
vulkan_loader_version="$($TERMUX_PKG_HOSTBUILD_DIR/vulkan_header_version)"
|
||||
if [ -z "$vulkan_loader_version" ]; then
|
||||
vulkan_loader_version="$(${TERMUX_PKG_HOSTBUILD_DIR}/vulkan_header_version)"
|
||||
if [[ -z "${vulkan_loader_version}" ]]; then
|
||||
termux_error_exit "ERROR: Host built vulkan_header_version is not printing version!"
|
||||
fi
|
||||
|
||||
# based on https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/vulkan.pc.in
|
||||
# not using "Libs.private"
|
||||
cat <<- EOF > "$TERMUX_PKG_TMPDIR/vulkan.pc"
|
||||
prefix=$TERMUX_PREFIX
|
||||
# https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/vulkan.pc.in
|
||||
cat <<- EOF > "${TERMUX_PKG_TMPDIR}/vulkan.pc"
|
||||
prefix=${TERMUX_PREFIX}
|
||||
exec_prefix=\${prefix}
|
||||
libdir=\${exec_prefix}/lib
|
||||
includedir=\${prefix}/include
|
||||
Name: Vulkan-Loader
|
||||
Description: Vulkan Loader
|
||||
Version: $vulkan_loader_version
|
||||
Version: ${vulkan_loader_version}
|
||||
Libs: -L\${libdir} -lvulkan
|
||||
Cflags: -I\${includedir}
|
||||
EOF
|
||||
install -Dm644 "$TERMUX_PKG_TMPDIR/vulkan.pc" "$TERMUX_PREFIX/lib/pkgconfig/vulkan.pc"
|
||||
echo "INFO: Printing vulkan.pc..."
|
||||
cat "$TERMUX_PREFIX/lib/pkgconfig/vulkan.pc"
|
||||
install -Dm644 "${TERMUX_PKG_TMPDIR}/vulkan.pc" "${TERMUX_PREFIX}/lib/pkgconfig/vulkan.pc"
|
||||
echo "INFO: ========== vulkan.pc =========="
|
||||
cat "${TERMUX_PREFIX}/lib/pkgconfig/vulkan.pc"
|
||||
echo "INFO: ========== vulkan.pc =========="
|
||||
|
||||
ln -fsv libvulkan.so "${TERMUX_PREFIX}/lib/libvulkan.so.1"
|
||||
}
|
||||
|
||||
termux_step_create_debscripts() {
|
||||
if [ "$TERMUX_ARCH_BITS" = 64 ]; then _BITS=64; else _BITS=""; fi
|
||||
local system_lib="/system/lib"
|
||||
[[ "${TERMUX_ARCH_BITS}" == "64" ]] && system_lib+="64"
|
||||
system_lib+="/libvulkan.so"
|
||||
local prefix_lib="${TERMUX_PREFIX}/lib/libvulkan.so"
|
||||
|
||||
cat <<- EOF > postinst
|
||||
#!$TERMUX_PREFIX/bin/sh
|
||||
if [ -e /system/lib${_BITS}/libvulkan.so ]; then
|
||||
echo "Symlink /system/lib${_BITS}/libvulkan.so to $TERMUX_PREFIX/lib/libvulkan.so ..."
|
||||
ln -fsT "/system/lib${_BITS}/libvulkan.so" "$TERMUX_PREFIX/lib/libvulkan.so"
|
||||
#!${TERMUX_PREFIX}/bin/sh
|
||||
if [ -e "${system_lib}" ]; then
|
||||
echo "Symlink ${system_lib} to ${prefix_lib} ..."
|
||||
ln -fsT "${system_lib}" "${prefix_lib}"
|
||||
fi
|
||||
EOF
|
||||
|
||||
cat <<- EOF > postrm
|
||||
#!$TERMUX_PREFIX/bin/sh
|
||||
rm -f "$TERMUX_PREFIX/lib/libvulkan.so"
|
||||
#!${TERMUX_PREFIX}/bin/sh
|
||||
rm -f "${prefix_lib}"
|
||||
EOF
|
||||
unset _BITS
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue