Add .desktop file and icon to install

Packaged builds for .deb, .rpm etc.. should build with the new configure
option --disable-desktop-database-update, or delete the cache files placed
into the build directory. The icon cache files should also be deleted
before installing.
This commit is contained in:
Peter Clifton
2007-11-11 05:31:29 +00:00
parent 649f947138
commit 59c3a9a59f
9 changed files with 1356 additions and 4 deletions

View File

@@ -18,7 +18,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
SUBDIRS = po
SUBDIRS = po data
bin_SCRIPTS = xgsch2pcb
@@ -40,7 +40,7 @@ INTLTOOL_FILES = tools/intltool-extract.in \
tools/intltool-update.in
EXTRA_DIST = xgsch2pcb.in lib/xgsch2pcb/config.py.in \
$(INTLTOOL_FILES)
$(INTLTOOL_FILES) icon-theme-installer
CLEANFILES = xgsch2pcb config.py
DISTCLEANFILES = intltool-extract \
intltool-merge \
@@ -65,4 +65,4 @@ xgsch2pcb: xgsch2pcb.in Makefile
$(do_subst) < $(srcdir)/xgsch2pcb.in > $@
chmod +x xgsch2pcb
DISTCHECK_CONFIGURE_FLAGS = --disable-update-desktop-database

4
data/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
geda-xgsch2pcb.desktop
Makefile
Makefile.in
*~

51
data/Makefile.am Normal file
View File

@@ -0,0 +1,51 @@
theme=hicolor
themedir=$(datadir)/icons/$(theme)
app_icon = xgsch2pcb
app_icon_files = \
$(app_icon:%=%-48.png) \
$(app_icon:%=%.svg)
# $(app_icon:%=%-16.png)
# $(app_icon:%=%-22.png)
# $(app_icon:%=%-24.png)
# $(app_icon:%=%-32.png)
#
theme_icons = \
$(app_icon_files:%=apps,%)
desktopdir=$(datadir)/applications
desktop_in_files = geda-xgsch2pcb.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
@INTLTOOL_DESKTOP_RULE@
install_icon_exec = \
$(top_srcdir)/icon-theme-installer \
-t $(theme) \
-s $(srcdir) \
-d "x$(DESTDIR)" \
-b $(themedir) \
-m "$(mkinstalldirs)" \
-x "$(INSTALL_DATA)"
install-data-local:
$(install_icon_exec) -i $(theme_icons)
install-data-hook:
if ENABLE_UPDATE_DESKTOP_DATABASE
$(UPDATE_DESKTOP_DATABASE) "$(DESTDIR)$(desktopdir)"
endif
uninstall-hook:
if ENABLE_UPDATE_DESKTOP_DATABASE
$(UPDATE_DESKTOP_DATABASE) "$(DESTDIR)$(desktopdir)"
endif
$(install_icon_exec) -u $(theme_icons)
MAINTAINERCLEANFILES = *.log core FILE *~ Makefile.in
DISTCLEANFILES = $(desktop_DATA)
EXTRA_DIST = $(app_icon_files) \
$(desktop_in_files) $(desktop_DATA)

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Encoding=UTF-8
GenericName=xgsch2pcb
_Name=gEDA Schematic -> PCB Project
_Comment=Create and edit electronics projects with xgsch2pcb
Type=Application
Exec=xgsch2pcb
Icon=xgsch2pcb
Categories=Engineering;Electronics

BIN
data/xgsch2pcb-48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

1097
data/xgsch2pcb.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 63 KiB

181
icon-theme-installer Executable file
View File

@@ -0,0 +1,181 @@
#!/bin/bash
# icon-theme-installer
# Copyright (C) 2006 Novell, Inc.
# Written by Aaron Bockover <abock@gnome.org>
# Licensed under the MIT/X11 license
#
# Modified by Peter Clifton to allow icons with numerals in the filename
#
# This script is meant to be invoked from within a Makefile/Makefile.am
# in the install-data-local and uninstall-data sections. It handles the
# task of properly installing icons into the icon theme. It requires a
# few arguments to set up its environment, and a list of files to be
# installed. The format of the file list is critical:
#
# <category>,<local-src-file-name>
#
# apps,music-player-banshee.svg
# apps,music-player-banshee-16.png
# apps,music-player-banshee-22.png
#
# <category> is the icon theme category, for instance, apps, devices,
# actions, emblems...
#
# <local-src-file-name> must have a basename in the form of:
#
# proper-theme-name[-<SIZE>].<EXTENSION>
#
# Where <SIZE> should be either nothing, which will default to scalable
# or \-[0-9]{2}, which will expand to <SIZE>x<SIZE>. For example:
#
# music-player-banshee-16.png
#
# The <SIZE> here is -16 and will expand to 16x16 per the icon theme spec
#
# What follows is an example Makefile.am for icon theme installation:
#
# ---------------
# theme=hicolor
# themedir=$(datadir)/icons/$(theme)
# theme_icons = \
# apps,music-player-banshee.svg \
# apps,music-player-banshee-16.png \
# apps,music-player-banshee-22.png \
# apps,music-player-banshee-24.png \
# apps,music-player-banshee-32.png
#
# install_icon_exec = $(top_srcdir)/build/icon-theme-installer -t $(theme) -s $(srcdir) -d "x$(DESTDIR)" -b $(themedir) -m "$(mkinstalldirs)" -x "$(INSTALL_DATA)"
# install-data-local:
# $(install_icon_exec) -i $(theme_icons)
#
# uninstall-hook:
# $(install_icon_exec) -u $(theme_icons)
#
# MAINTAINERCLEANFILES = Makefile.in
# EXTRA_DIST = $(wildcard *.svg *.png)
# ---------------
#
# Arguments to this program:
#
# -i : Install
# -u : Uninstall
# -t <theme> : Theme name (hicolor)
# -b <dir> : Theme installation dest directory [x$(DESTDIR)] - Always prefix
# this argument with x; it will be stripped but will act as a
# placeholder for zero $DESTDIRs (only set by packagers)
# -d <dir> : Theme installation directory [$(hicolordir)]
# -s <dir> : Source directory [$(srcdir)]
# -m <exec> : Command to exec for directory creation [$(mkinstalldirs)]
# -x <exec> : Command to exec for single file installation [$(INSTALL_DATA)]
# <remainging> : All remainging should be category,filename pairs
while getopts "iut:b:d:s:m:x:" flag; do
case "$flag" in
i) INSTALL=yes ;;
u) UNINSTALL=yes ;;
t) THEME_NAME=$OPTARG ;;
d) INSTALL_DEST_DIR=${OPTARG##x} ;;
b) INSTALL_BASE_DIR=$OPTARG ;;
s) SRC_DIR=$OPTARG ;;
m) MKINSTALLDIRS_EXEC=$OPTARG ;;
x) INSTALL_DATA_EXEC=$OPTARG ;;
esac
done
shift $(($OPTIND - 1))
if test "x$INSTALL" = "xyes" -a "x$UNINSTALL" = "xyes"; then
echo "Cannot pass both -i and -u"
exit 1
elif test "x$INSTALL" = "x" -a "x$UNINSTALL" = "x"; then
echo "Must path either -i or -u"
exit 1
fi
if test -z "$THEME_NAME"; then
echo "Theme name required (-t hicolor)"
exit 1
fi
if test -z "$INSTALL_BASE_DIR"; then
echo "Base theme directory required [-d \$(hicolordir)]"
exit 1
fi
if test ! -x $(echo "$MKINSTALLDIRS_EXEC" | cut -f1 -d' '); then
echo "Cannot find '$MKINSTALLDIRS_EXEC'; You probably want to pass -m \$(mkinstalldirs)"
exit 1
fi
if test ! -x $(echo "$INSTALL_DATA_EXEC" | cut -f1 -d' '); then
echo "Cannot find '$INSTALL_DATA_EXEC'; You probably want to pass -x \$(INSTALL_DATA)"
exit 1
fi
if test -z "$SRC_DIR"; then
SRC_DIR=.
fi
for icon in $@; do
size=$(echo $icon | sed -n "s/.*-\([0-9]*\).*/\1/p")
category=$(echo $icon | cut -d, -f1)
build_name=$(echo $icon | cut -d, -f2)
install_name=$(echo $build_name | sed "s/-[0-9]\+//g")
install_name=$(basename $install_name)
if test -z $size; then
size=scalable;
else
size=${size}x${size};
fi
install_dir=${INSTALL_DEST_DIR}${INSTALL_BASE_DIR}/$size/$category
install_path=$install_dir/$install_name
if test "x$INSTALL" = "xyes"; then
echo "Installing $size $install_name into $THEME_NAME icon theme"
$($MKINSTALLDIRS_EXEC $install_dir) || {
echo "Failed to create directory $install_dir"
exit 1
}
$($INSTALL_DATA_EXEC $SRC_DIR/$build_name $install_path) || {
echo "Failed to install $SRC_DIR/$build_name into $install_path"
exit 1
}
if test ! -e $install_path; then
echo "Failed to install $SRC_DIR/$build_name into $install_path"
exit 1
fi
else
if test -e $install_path; then
echo "Removing $size $install_name from $THEME_NAME icon theme"
rm $install_path || {
echo "Failed to remove $install_path"
exit 1
}
fi
fi
done
if test "x$INSTALL" = "xyes"; then
gtk_update_icon_cache_bin="$((which gtk-update-icon-cache || echo /opt/gnome/bin/gtk-update-icon-cache)2>/dev/null)"
gtk_update_icon_cache="$gtk_update_icon_cache_bin -f -t $INSTALL_BASE_DIR"
if test -z "$INSTALL_DEST_DIR"; then
if test -x $gtk_update_icon_cache_bin; then
echo "Updating GTK icon cache"
$gtk_update_icon_cache
else
echo "*** Icon cache not updated. Could not execute $gtk_update_icon_cache_bin"
fi
else
echo "*** Icon cache not updated. After install, run this:"
echo "*** $gtk_update_icon_cache"
fi
fi

View File

@@ -1,3 +1,4 @@
lib/xgsch2pcb/gui.py
lib/xgsch2pcb/new_project_gui.py
lib/xgsch2pcb/pcbmanager.py
data/geda-xgsch2pcb.desktop.in

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-11-10 23:41+0000\n"
"POT-Creation-Date: 2007-11-10 23:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -296,3 +296,11 @@ msgstr ""
#: ../lib/xgsch2pcb/pcbmanager.py:313
msgid "********DONE UPDATING********"
msgstr ""
#: ../data/geda-xgsch2pcb.desktop.in.h:1
msgid "Schematic -> PCB Project"
msgstr ""
#: ../data/geda-xgsch2pcb.desktop.in.h:2
msgid "gEDA xgschp2cb project manager"
msgstr ""