mirror of
git://git.geda-project.org/xgsch2pcb
synced 2023-11-16 16:51:06 +08:00
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:
@@ -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
4
data/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
geda-xgsch2pcb.desktop
|
||||
Makefile
|
||||
Makefile.in
|
||||
*~
|
51
data/Makefile.am
Normal file
51
data/Makefile.am
Normal 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)
|
10
data/geda-xgsch2pcb.desktop.in
Normal file
10
data/geda-xgsch2pcb.desktop.in
Normal 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
BIN
data/xgsch2pcb-48.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
1097
data/xgsch2pcb.svg
Normal file
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
181
icon-theme-installer
Executable 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
|
||||
|
@@ -1,3 +1,4 @@
|
||||
lib/xgsch2pcb/gui.py
|
||||
lib/xgsch2pcb/new_project_gui.py
|
||||
lib/xgsch2pcb/pcbmanager.py
|
||||
data/geda-xgsch2pcb.desktop.in
|
||||
|
@@ -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 ""
|
||||
|
Reference in New Issue
Block a user