summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorAlistair Bush <ali_bush@gentoo.org>2007-10-04 09:59:29 +0000
committerAlistair Bush <ali_bush@gentoo.org>2007-10-04 09:59:29 +0000
commitebc3bc9d09d93e2c18f43c446c22245d2371ad5e (patch)
tree1585aafde20b8711bd78db4b3cb1dd09c21196cf /eclass
parentVersion bump (diff)
downloadgentoo-2-ebc3bc9d09d93e2c18f43c446c22245d2371ad5e.tar.gz
gentoo-2-ebc3bc9d09d93e2c18f43c446c22245d2371ad5e.tar.bz2
gentoo-2-ebc3bc9d09d93e2c18f43c446c22245d2371ad5e.zip
Adding java-virtuals-2.eclass and updating java-utils-2.eclass to add support for java virtuals.
Diffstat (limited to 'eclass')
-rw-r--r--eclass/java-utils-2.eclass29
-rw-r--r--eclass/java-virtuals-2.eclass41
2 files changed, 69 insertions, 1 deletions
diff --git a/eclass/java-utils-2.eclass b/eclass/java-utils-2.eclass
index 25fb8e06dafe..1db5c39305bf 100644
--- a/eclass/java-utils-2.eclass
+++ b/eclass/java-utils-2.eclass
@@ -6,7 +6,7 @@
#
# Licensed under the GNU General Public License, v2
#
-# $Header: /var/cvsroot/gentoo-x86/eclass/java-utils-2.eclass,v 1.93 2007/09/27 19:47:08 betelgeuse Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/java-utils-2.eclass,v 1.94 2007/10/04 09:59:29 ali_bush Exp $
# -----------------------------------------------------------------------------
# @eclass-begin
@@ -840,6 +840,8 @@ java-pkg_recordjavadoc()
# (assumed automatically when called inside src_test)
# --with-dependencies - get jars also from requested package's dependencies
# transitively.
+# --virtual - Packages passed to this function are to be handled as virtuals
+# and will not have individual jar dependencies recorded.
# --into $dir - symlink jar(s) into $dir (must exist) instead of .
# @param $1 - Package to get jars from, or comma-separated list of packages in
# case other parameters are not used.
@@ -854,6 +856,7 @@ java-pkg_jar-from() {
local build_only=""
local destdir="."
local deep=""
+ local virtual=""
[[ "${EBUILD_PHASE}" == "test" ]] && build_only="build"
@@ -862,6 +865,8 @@ java-pkg_jar-from() {
build_only="build"
elif [[ "${1}" = "--with-dependencies" ]]; then
deep="--with-dependencies"
+ elif [[ "${1}" = "--virtual" ]]; then
+ virtual="true"
elif [[ "${1}" = "--into" ]]; then
destdir="${2}"
shift
@@ -897,6 +902,14 @@ java-pkg_jar-from() {
java-pkg_ensure-dep "${build_only}" "${target_pkg}"
fi
+ # Record the entire virtual as a dependency so that
+ # no jars are missed.
+ if [[ -z "${build_only}" && -n "${virtual}" ]]; then
+ java-pkg_record-jar_ "${target_pkg}"
+ # setting this disables further record-jars_ calls later
+ build_only="build"
+ fi
+
pushd ${destdir} > /dev/null \
|| die "failed to change directory to ${destdir}"
@@ -1028,6 +1041,8 @@ java-pkg_getjars() {
#
# @param $opt
# --build-only - makes the jar not added into package.env DEPEND line.
+# --virtual - Packages passed to this function are to be handled as virtuals
+# and will not have individual jar dependencies recorded.
# @param $1 - package to use
# @param $2 - jar to get
# ------------------------------------------------------------------------------
@@ -1035,12 +1050,15 @@ java-pkg_getjar() {
debug-print-function ${FUNCNAME} $*
local build_only=""
+ local virtual=""
[[ "${EBUILD_PHASE}" == "test" ]] && build_only="build"
while [[ "${1}" == --* ]]; do
if [[ "${1}" = "--build-only" ]]; then
build_only="build"
+ elif [[ "${1}" == --* ]]; then
+ virtual="true"
else
die "java-pkg_jar-from called with unknown parameter: ${1}"
fi
@@ -1060,6 +1078,13 @@ java-pkg_getjar() {
java-pkg_ensure-dep "${build_only}" "${pkg}"
+ # Record the package(Virtual) as a dependency and then set build_only
+ # So that individual jars are not recorded.
+ if [[ -n "${virtual}" ]]; then
+ java-pkg_record-jar_ "${pkg}"
+ build_only="true"
+ fi
+
for jar in ${classpath//:/ }; do
if [[ ! -f "${jar}" ]] ; then
die "Installation problem with jar ${jar} in ${pkg} - is it installed?"
@@ -2203,6 +2228,8 @@ java-pkg_init_paths_() {
JAVA_PKG_SHAREPATH="${DESTTREE}/share/${JAVA_PKG_NAME}"
JAVA_PKG_SOURCESPATH="${JAVA_PKG_SHAREPATH}/sources/"
JAVA_PKG_ENV="${D}${JAVA_PKG_SHAREPATH}/package.env"
+ JAVA_PKG_VIRTUALS_PATH="${DESTTREE}/share/java-config-2/virtuals"
+ JAVA_PKG_VIRTUAL_PROVIDER="${D}/${JAVA_PKG_VIRTUALS_PATH}/${JAVA_PKG_NAME}"
[[ -z "${JAVA_PKG_JARDEST}" ]] && JAVA_PKG_JARDEST="${JAVA_PKG_SHAREPATH}/lib"
[[ -z "${JAVA_PKG_LIBDEST}" ]] && JAVA_PKG_LIBDEST="${DESTTREE}/$(get_libdir)/${JAVA_PKG_NAME}"
diff --git a/eclass/java-virtuals-2.eclass b/eclass/java-virtuals-2.eclass
new file mode 100644
index 000000000000..3913806715c1
--- /dev/null
+++ b/eclass/java-virtuals-2.eclass
@@ -0,0 +1,41 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/java-virtuals-2.eclass,v 1.1 2007/10/04 09:59:29 ali_bush Exp $
+
+# Original Author: Alistair John Bush <ali_bush@gentoo.org>
+# Purpose: To provide a default (and only) src_install function
+# for ebuilds in the java-virtuals category.
+
+inherit java-utils-2
+
+EXPORT_FUNCTIONS src_install
+
+java-virtuals-2_src_install() {
+ java-virtuals-2_do_write
+}
+
+# ------------------------------------------------------------------------------
+# @internal-function java-pkg_do_virtuals_write
+#
+# Writes the virtual env file out to disk.
+#
+# ------------------------------------------------------------------------------
+java-virtuals-2_do_write() {
+ java-pkg_init_paths_
+
+ dodir "${JAVA_PKG_VIRTUALS_PATH}"
+ if [[ -n "${JAVA_VIRTUAL_PROVIDES}" ]]; then
+ echo "PROVIDERS=\"${JAVA_VIRTUAL_PROVIDES}\"" \
+ >> ${JAVA_PKG_VIRTUAL_PROVIDER}
+ fi
+
+ if [[ -n "${JAVA_VIRTUAL_VM}" ]]; then
+ echo "VM=\"${JAVA_VIRTUAL_VM}\"" \
+ >> ${JAVA_PKG_VIRTUAL_PROVIDER}
+ fi
+
+ if [[ -n "${JAVA_VIRTUAL_VM_CLASSPATH}" ]]; then
+ echo "VM_CLASSPATH=\"${JAVA_VIRTUAL_VM_CLASSPATH}\"" \
+ >> ${JAVA_PKG_VIRTUAL_PROVIDER}
+ fi
+}