87 lines
1.5 KiB
Bash
Executable File
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
|