gnuradio-companion/scripts/freedesktop/grc_setup_freedesktop.in
Volker Schroer 39da83c61d The uninstall script did not remove the previously installed freedesktop icons and desktop files.
Now grc_setup_freedesktop uninstall is called in cmake_uninstall.cmake

As far as I can see the icon and menu files are only needed in the freedesktop environment.
It's not necessary to put them into gnuradio install path.

So I removed these copies and installed these files directly from the source directory
using xdg-icon-resource and other xdg-utils.

Giving grc_setup_freedesktop execute permissions in the build directory avoids copying it
to the libexec directory. So even if ENABLE_POSTINSTALL=ON no libexec directory will be created.

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
2023-03-11 16:13:45 -08:00

66 lines
2.4 KiB
Bash

#!/bin/bash
#
# Copyright 2008-2011 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
#
##################################################
# setup grc on a freedesktop platform
# $1 should be install or uninstall
# $2 is the optional path to the files
# when $2 is unspecified, the path is:
# @SRCDIR@
##################################################
ICON_SIZES="16 24 32 48 64 128 256"
if [ -n "$2" ]; then
SRCDIR="$2"
else
SRCDIR="@CMAKE_CURRENT_SOURCE_DIR@"
fi
case "$1" in
'install')
echo "Begin freedesktop install..."
for size in ${ICON_SIZES}; do \
echo "Install icon: ${size}x${size}"
xdg-icon-resource install --noupdate --context mimetypes --theme gnome --size ${size} ${SRCDIR}/grc-icon-${size}.png application-gnuradio-grc; \
xdg-icon-resource install --noupdate --context mimetypes --size ${size} ${SRCDIR}/grc-icon-${size}.png application-gnuradio-grc; \
xdg-icon-resource install --noupdate --context apps --theme gnome --size ${size} ${SRCDIR}/grc-icon-${size}.png gnuradio-grc; \
xdg-icon-resource install --noupdate --context apps --size ${size} ${SRCDIR}/grc-icon-${size}.png gnuradio-grc; \
done
xdg-icon-resource forceupdate #update for system (hicolor) theme
xdg-icon-resource forceupdate --theme gnome #update for gnome theme
echo "Install mime type"
xdg-mime install ${SRCDIR}/gnuradio-grc.xml
echo "Install menu items"
xdg-desktop-menu install ${SRCDIR}/*.desktop
echo "Done!"
echo ""
;;
'uninstall')
echo "Begin freedesktop uninstall..."
for size in ${ICON_SIZES}; do \
echo "Uninstall icon: ${size}x${size}"
xdg-icon-resource uninstall --noupdate --context mimetypes --theme gnome --size ${size} application-gnuradio-grc; \
xdg-icon-resource uninstall --noupdate --context mimetypes --size ${size} application-gnuradio-grc; \
xdg-icon-resource uninstall --noupdate --context apps --theme gnome --size ${size} gnuradio-grc; \
xdg-icon-resource uninstall --noupdate --context apps --size ${size} gnuradio-grc; \
done
xdg-icon-resource forceupdate #update for system (hicolor) theme
xdg-icon-resource forceupdate --theme gnome #update for gnome theme
echo "Uninstall mime type"
xdg-mime uninstall ${SRCDIR}/gnuradio-grc.xml
echo "Uninstall menu items"
xdg-desktop-menu uninstall `ls ${SRCDIR}/*.desktop | xargs -n1 basename`
echo "Done!"
echo ""
;;
*)
echo "Usage: $0 [install|uninstall]"
;;
esac