gfx: Update generate_wayland_protos.sh.

This commit is contained in:
orbea 2019-01-25 07:13:54 -08:00
parent d7d5bc58b2
commit ae7b09afae
2 changed files with 51 additions and 20 deletions

View File

@ -1,35 +1,65 @@
#!/bin/sh
WAYSCAN=/usr/bin/wayland-scanner
WAYLAND_PROTOS=/usr/share/wayland-protocols
OUTPUT=gfx/common/wayland
if [ ! -d $WAYLAND_PROTOS ]; then
WAYSCAN=/usr/local/bin/wayland-scanner
WAYLAND_PROTOS=/usr/local/share/wayland-protocols
fi
set -eu
if [ ! -d $OUTPUT ]; then
mkdir $OUTPUT
fi
cd -- "$(cd -- "${0%/*}/" && pwd -P)"
if [ "${1:-}" = '1.12' ]; then
. ../../../qb/qb.init.sh
SCANNER_VERSION=''
SHARE_DIR=''
usage="generate_wayland_protos.sh - Generates wayland protocols.
Usage: generate_wayland_protos.sh [OPTIONS]
-c, --codegen version Sets the wayland scanner compatibility version.
-h, --help Shows this message.
-s, --share path Sets the path of the wayland protocols directory."
while [ $# -gt 0 ]; do
option="$1"
shift
case "$option" in
-- ) break ;;
-c|--codegen ) SCANNER_VERSION="$1"; shift ;;
-h|--help ) die 0 "$usage" ;;
-s|--share ) SHARE_DIR="$1/wayland-protocols"; shift ;;
* ) die 1 "Unrecognized option '$option', use -h for help." ;;
esac
done
WAYSCAN="$(exists wayland-scanner || :)"
[ "${WAYSCAN}" ] || die 1 "Error: No wayscan in ($PATH)"
WAYLAND_PROTOS=''
for protos in "$SHARE_DIR" /usr/local/share/wayland-protocols /usr/share/wayland-protocols; do
[ -d "$protos" ] || continue
WAYLAND_PROTOS="$protos"
break
done
[ "${WAYLAND_PROTOS}" ] || die 1 'Error: No wayland-protocols directory found.'
if [ "$SCANNER_VERSION" = '1.12' ]; then
CODEGEN=code
else
CODEGEN=private-code
fi
#Generate xdg-shell_v6 header and .c files
$WAYSCAN client-header $WAYLAND_PROTOS/unstable/xdg-shell/xdg-shell-unstable-v6.xml $OUTPUT/xdg-shell-unstable-v6.h
$WAYSCAN $CODEGEN $WAYLAND_PROTOS/unstable/xdg-shell/xdg-shell-unstable-v6.xml $OUTPUT/xdg-shell-unstable-v6.c
"$WAYSCAN" client-header "$WAYLAND_PROTOS/unstable/xdg-shell/xdg-shell-unstable-v6.xml" ./xdg-shell-unstable-v6.h
"$WAYSCAN" $CODEGEN "$WAYLAND_PROTOS/unstable/xdg-shell/xdg-shell-unstable-v6.xml" ./xdg-shell-unstable-v6.c
#Generate xdg-shell header and .c files
$WAYSCAN client-header $WAYLAND_PROTOS/stable/xdg-shell/xdg-shell.xml $OUTPUT/xdg-shell.h
$WAYSCAN $CODEGEN $WAYLAND_PROTOS/stable/xdg-shell/xdg-shell.xml $OUTPUT/xdg-shell.c
"$WAYSCAN" client-header "$WAYLAND_PROTOS/stable/xdg-shell/xdg-shell.xml" ./xdg-shell.h
"$WAYSCAN" $CODEGEN "$WAYLAND_PROTOS/stable/xdg-shell/xdg-shell.xml" ./xdg-shell.c
#Generate idle-inhibit header and .c files
$WAYSCAN client-header $WAYLAND_PROTOS/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml $OUTPUT/idle-inhibit-unstable-v1.h
$WAYSCAN $CODEGEN $WAYLAND_PROTOS/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml $OUTPUT/idle-inhibit-unstable-v1.c
"$WAYSCAN" client-header "$WAYLAND_PROTOS/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml" ./idle-inhibit-unstable-v1.h
"$WAYSCAN" $CODEGEN "$WAYLAND_PROTOS/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml" ./idle-inhibit-unstable-v1.c
#Generate xdg-decoration header and .c files
$WAYSCAN client-header $WAYLAND_PROTOS/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml $OUTPUT/xdg-decoration-unstable-v1.h
$WAYSCAN $CODEGEN $WAYLAND_PROTOS/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml $OUTPUT/xdg-decoration-unstable-v1.c
"$WAYSCAN" client-header "$WAYLAND_PROTOS/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml" ./xdg-decoration-unstable-v1.h
"$WAYSCAN" $CODEGEN "$WAYLAND_PROTOS/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml" ./xdg-decoration-unstable-v1.c

View File

@ -466,7 +466,8 @@ check_val '' XF86VM -lXxf86vm '' xxf86vm '' ''
if [ "$HAVE_WAYLAND_PROTOS" = yes ] &&
[ "$HAVE_WAYLAND_SCANNER" = yes ] &&
[ "$HAVE_WAYLAND" = yes ]; then
./gfx/common/wayland/generate_wayland_protos.sh "$WAYLAND_SCANNER_VERSION"
./gfx/common/wayland/generate_wayland_protos.sh -c "$WAYLAND_SCANNER_VERSION" -s "$SHARE_DIR" ||
die 1 'Error: Failed generating wayland protocols.'
else
die : 'Notice: wayland libraries not found, disabling wayland support.'
HAVE_WAYLAND='no'