summaryrefslogtreecommitdiff
path: root/eclass/gkrellm-plugin.eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/gkrellm-plugin.eclass')
-rw-r--r--eclass/gkrellm-plugin.eclass82
1 files changed, 82 insertions, 0 deletions
diff --git a/eclass/gkrellm-plugin.eclass b/eclass/gkrellm-plugin.eclass
new file mode 100644
index 000000000000..efb35bd07ffe
--- /dev/null
+++ b/eclass/gkrellm-plugin.eclass
@@ -0,0 +1,82 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+#
+# Original Author: Jim Ramsay <lack@gentoo.org>
+#
+# Purpose:
+# Provides common methods used by (almost) all gkrellm plugins:
+# - Sets up default dependencies
+# - Adds pkg_setup check to ensure gkrellm was built with USE="X" (bug
+# 167227)
+# - Provides utility routines in lieu of hard-coding the plugin directories.
+# - Provides the most common src_install method to avoid code duplication.
+#
+# Utility Routines:
+# gkrellm-plugin_dir - Returns the gkrellm-2 plugin directory
+# gkrellm-plugin_server_dir - Returns the gkrellm-2 server plugin directory
+#
+# Environment:
+# For src_install:
+# PLUGIN_SO - The name of the plugin's .so file which will be installed in
+# the plugin dir. Defaults to "${PN}.so".
+# PLUGIN_DOCS - An optional list of docs to be installed. Defaults to
+# unset.
+# PLUGIN_SERVER_SO - The name of the plugin's server plugin .so portion.
+# Defaults to unset.
+# Important: This will also cause the pkg_setup check to be skipped, so
+# you need to check 'build_with_use app-admin/gkrellm X' in your
+# src_compile and only compile the GUI portion if that returns true. (see
+# x11-plugins/gkrelltop as an example)
+#
+# Changelog:
+# 12 March 2007: Jim Ramsay <lack@gentoo.org>
+# - Added server plugin support
+# 09 March 2007: Jim Ramsay <lack@gentoo.org>
+# - Initial commit
+#
+
+inherit multilib eutils
+
+RDEPEND="=app-admin/gkrellm-2*"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+gkrellm-plugin_dir() {
+ echo /usr/$(get_libdir)/gkrellm2/plugins
+}
+
+gkrellm-plugin_server_dir() {
+ echo /usr/$(get_libdir)/gkrellm2/plugins-gkrellmd
+}
+
+gkrellm-plugin_pkg_setup() {
+ if [[ -z "${PLUGIN_SERVER_SO}" ]] &&
+ ! built_with_use app-admin/gkrellm X; then
+ eerror "This plugin requires the X frontend of gkrellm."
+ eerror "Please re-emerge app-admin/gkrellm with USE=\"X\""
+ die "Please re-emerge app-admin/gkrellm with USE=\"X\""
+ fi
+}
+
+gkrellm-plugin_src_install() {
+ if built_with_use app-admin/gkrellm X; then
+ insinto $(gkrellm-plugin_dir)
+ doins ${PLUGIN_SO:-${PN}.so} || die "Plugin shared library was not installed"
+ fi
+
+ if [[ -n "${PLUGIN_SERVER_SO}" ]]; then
+ insinto $(gkrellm-plugin_server_dir)
+ doins ${PLUGIN_SERVER_SO} || die "Server plugin shared library was not installed"
+ fi
+
+ DDOCS="README* Change* AUTHORS FAQ TODO INSTALL"
+
+ for doc in ${DDOCS}; do
+ [ -s "$doc" ] && dodoc $doc
+ done
+
+ [ -n "${PLUGIN_DOCS}" ] && dodoc ${PLUGIN_DOCS}
+}
+
+EXPORT_FUNCTIONS pkg_setup src_install