new/external/libmali/scripts/parse_name.sh
2025-05-10 21:58:58 +08:00

87 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
PRINT_GPU=false
PRINT_VERSION=false
PRINT_SUBVERSION=false
PRINT_PLATFORM=false
PRINT_FORMAT=false
PLATFORMS="only-cl|without-cl|vulkan|dummy|x11|wayland|gbm"
# Normalize platform variable
normalize_platform() {
PLATFORM="$@"
for platform in $(echo $PLATFORMS|xargs -d'|'); do
echo $PLATFORM|grep -ow $platform|uniq
done
}
parse_name() {
FILE="$@"
LIB=${FILE##*/}
LIB=${LIB%.so}
[ -z "$LIB" ] && return
GPU=$(echo $LIB|cut -sd'-' -f'2,3')
VERSION=$(echo $LIB|cut -sd'-' -f4)
PLATFORM=$(echo $LIB|grep -owE "$PLATFORMS"|paste -sd'-')
[ -z "$PLATFORM" ] && PLATFORM=x11
SUBVERSION=$(echo ${LIB%-$PLATFORM}|cut -sd'-' -f'5-')
# Fixup GBM platform
if readelf -s "$FILE" 2>/dev/null | grep -wq gbm_create_device; then
PLATFORM=${PLATFORM}-gbm
fi
PLATFORM=$(normalize_platform $PLATFORM|paste -sd'-')
if $PRINT_GPU;then
echo $GPU
elif $PRINT_VERSION;then
echo $VERSION
elif $PRINT_SUBVERSION;then
echo $SUBVERSION
elif $PRINT_PLATFORM;then
echo $PLATFORM
elif $PRINT_FORMAT;then
echo libmali-$GPU-$VERSION${SUBVERSION:+-$SUBVERSION}-$PLATFORM.so
else
echo name=$LIB
echo gpu=$GPU
echo version=$VERSION
echo subversion=$SUBVERSION
echo platform=$PLATFORM
fi
}
case "$1" in
--gpu)
PRINT_GPU=true
shift
;;
--version)
PRINT_VERSION=true
shift
;;
--subversion)
PRINT_SUBVERSION=true
shift
;;
--platform)
PRINT_PLATFORM=true
shift
;;
--format)
PRINT_FORMAT=true
shift
;;
esac
for lib in "$@";do
parse_name $lib
done
exit 0