aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Krysik <ptrkrysik@gmail.com>2017-08-31 21:58:48 +0200
committerPiotr Krysik <ptrkrysik@gmail.com>2017-08-31 21:58:48 +0200
commit1ad0c96abbd6bdb3d5fd84ac0406da9aff8805fe (patch)
tree35fb55c37acebc70b9b4a4c3394f0d7f3d12c0e0
parent1e8a03c2e87edcc57bde7fda3bdf950d7bbb92fa (diff)
Added *.desktop files installation a'la GNU Radio.
After building grgsm_setup_freedesktop is created. It has to be executed during installation of a package with 'install' as a parameter. During removal of a package it has to be called with 'uninstall' as a parameter.
-rw-r--r--apps/CMakeLists.txt2
-rw-r--r--apps/apps_data/CMakeLists.txt21
-rw-r--r--apps/apps_data/grgsm-livemon.desktop (renamed from apps/apps_data/grgsm_livemon.desktop)0
-rw-r--r--apps/apps_data/grgsm_setup_freedesktop.in54
4 files changed, 75 insertions, 2 deletions
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index 7be18e7..ec04f1f 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -19,6 +19,8 @@
include(GrPython)
add_subdirectory(helpers)
+add_subdirectory(apps_data)
+
GR_PYTHON_INSTALL(
PROGRAMS
diff --git a/apps/apps_data/CMakeLists.txt b/apps/apps_data/CMakeLists.txt
index 5962e52..db8a843 100644
--- a/apps/apps_data/CMakeLists.txt
+++ b/apps/apps_data/CMakeLists.txt
@@ -17,8 +17,25 @@
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
+set(grgsm_freedesktop_path ${GR_PKG_DATA_DIR}/gr-gsm/freedesktop)
+
install(
FILES
- grgsm_livemon.desktop
- DESTINATION ${GR_PKG_DATA_DIR}
+ grgsm-livemon.desktop
+ DESTINATION ${grgsm_freedesktop_path}
+ COMPONENT "gr-gsm"
)
+
+find_program(HAVE_XDG_UTILS xdg-desktop-menu)
+
+if(UNIX AND HAVE_XDG_UTILS)
+ set(SRCDIR ${CMAKE_INSTALL_PREFIX}/${grgsm_freedesktop_path})
+ configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/grgsm_setup_freedesktop.in
+ ${CMAKE_CURRENT_BINARY_DIR}/grgsm_setup_freedesktop
+ @ONLY)
+ install(
+ PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/grgsm_setup_freedesktop
+ DESTINATION ${GR_PKG_LIBEXEC_DIR} COMPONENT "gr-gsm"
+ )
+endif(UNIX AND HAVE_XDG_UTILS)
diff --git a/apps/apps_data/grgsm_livemon.desktop b/apps/apps_data/grgsm-livemon.desktop
index a18859f..a18859f 100644
--- a/apps/apps_data/grgsm_livemon.desktop
+++ b/apps/apps_data/grgsm-livemon.desktop
diff --git a/apps/apps_data/grgsm_setup_freedesktop.in b/apps/apps_data/grgsm_setup_freedesktop.in
new file mode 100644
index 0000000..f932519
--- /dev/null
+++ b/apps/apps_data/grgsm_setup_freedesktop.in
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Copyright 2008-2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+##################################################
+# 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@
+##################################################
+
+if [ -n "$2" ]; then
+ SRCDIR="$2"
+else
+ SRCDIR="@SRCDIR@"
+fi
+
+case "$1" in
+'install')
+ echo "Begin freedesktop install..."
+ echo "Install menu items"
+ xdg-desktop-menu install ${SRCDIR}/*.desktop
+ echo "Done!"
+ echo ""
+ ;;
+'uninstall')
+ echo "Begin freedesktop uninstall..."
+ echo "Uninstall menu items"
+ xdg-desktop-menu uninstall `ls ${SRCDIR}/*.desktop | xargs -n1 basename`
+ echo "Done!"
+ echo ""
+ ;;
+*)
+ echo "Usage: $0 [install|uninstall]"
+ ;;
+esac