/[gentoo-x86]/eclass/java-utils-2.eclass
Gentoo

Diff of /eclass/java-utils-2.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.6 Revision 1.10
33# ----------------------------------------------------------------------------- 33# -----------------------------------------------------------------------------
34 34
35# Make sure we use java-config-2 35# Make sure we use java-config-2
36export WANT_JAVA_CONFIG="2" 36export WANT_JAVA_CONFIG="2"
37 37
38# TODO document
39JAVA_PKG_PORTAGE_DEP=">=sys-apps/portage-2.1_pre1"
40
38# ----------------------------------------------------------------------------- 41# -----------------------------------------------------------------------------
39# @variable-internal JAVA_PKG_E_DEPEND 42# @variable-internal JAVA_PKG_E_DEPEND
40# 43#
41# This is a convience variable to be used from the other java eclasses. This is 44# This is a convience variable to be used from the other java eclasses. This is
42# the version of java-config we want to use. We also need a recent version 45# the version of java-config we want to use. We also need a recent version
43# portage, that includes phase hooks. 46# portage, that includes phase hooks.
44# ----------------------------------------------------------------------------- 47# -----------------------------------------------------------------------------
45JAVA_PKG_E_DEPEND=">=dev-java/java-config-2.0.19-r1 >=sys-apps/portage-2.1_pre1" 48JAVA_PKG_E_DEPEND=">=dev-java/java-config-2.0.19-r1 ${JAVA_PKG_PORTAGE_DEP}"
46 49
47# ----------------------------------------------------------------------------- 50# -----------------------------------------------------------------------------
48# @variable-external JAVA_PKG_ALLOW_VM_CHANGE 51# @variable-external JAVA_PKG_ALLOW_VM_CHANGE
49# @variable-default yes 52# @variable-default yes
50# 53#
226# 229#
227# java-pkg_regjar ${D}/opt/my-java/lib/*.jar 230# java-pkg_regjar ${D}/opt/my-java/lib/*.jar
228# 231#
229# @param $@ - jars to record 232# @param $@ - jars to record
230# ------------------------------------------------------------------------------ 233# ------------------------------------------------------------------------------
231# TODO fix me! 234# TODO should we be making sure the jar is present on ${D} or wherever?
232java-pkg_regjar() { 235java-pkg_regjar() {
233 debug-print-function ${FUNCNAME} $* 236 debug-print-function ${FUNCNAME} $*
234 237
235 java-pkg_check-phase install 238 java-pkg_check-phase install
236 239
1160 1163
1161# TODO document 1164# TODO document
1162java-pkg_get-jni-cflags() { 1165java-pkg_get-jni-cflags() {
1163 local flags="-I${JAVA_HOME}/include" 1166 local flags="-I${JAVA_HOME}/include"
1164 1167
1168 # TODO do a check that the directories are valid
1165 # TODO figure out how to cope with other things than linux... 1169 # TODO figure out how to cope with other things than linux...
1166 flags="${flags} -I${JAVA_HOME}/include/linux" 1170 flags="${flags} -I${JAVA_HOME}/include/linux"
1167 1171
1168 echo ${flags} 1172 echo ${flags}
1173}
1174
1175java-pkg_ensure-gcj() {
1176 if ! built_with_use sys-devel/gcc gcj ; then
1177 ewarn
1178 ewarn "You must build gcc with the gcj support to build with gcj"
1179 ewarn
1180 ebeep 5
1181 die "No GCJ support found!"
1182 fi
1169} 1183}
1170 1184
1171# ------------------------------------------------------------------------------ 1185# ------------------------------------------------------------------------------
1172# @section-end helper 1186# @section-end helper
1173# ------------------------------------------------------------------------------ 1187# ------------------------------------------------------------------------------
1210 local build_compiler_deps="$(source ${JAVA_PKG_COMPILER_DIR}/${compiler} 1>/dev/null 2>&1; echo ${ANT_BUILD_COMPILER_DEPS})" 1224 local build_compiler_deps="$(source ${JAVA_PKG_COMPILER_DIR}/${compiler} 1>/dev/null 2>&1; echo ${ANT_BUILD_COMPILER_DEPS})"
1211 if [[ -n ${build_compiler_deps} ]]; then 1225 if [[ -n ${build_compiler_deps} ]]; then
1212 antflags="${antflags} -lib $(java-config -p ${build_compiler_deps})" 1226 antflags="${antflags} -lib $(java-config -p ${build_compiler_deps})"
1213 fi 1227 fi
1214 fi 1228 fi
1229
1230 if is-java-strict; then
1231 einfo "Disabling system classpath for ant"
1232 antflags="${antflags} -Dbuild.sysclasspath=ignore"
1233 fi
1215 1234
1216 if [[ -n ${JAVA_PKG_DEBUG} ]]; then 1235 if [[ -n ${JAVA_PKG_DEBUG} ]]; then
1217 antflags="${antflags} -debug" 1236 antflags="${antflags} -debug"
1218 fi 1237 fi
1219 1238
1249# 1268#
1250# @param $@ - compilers to filter 1269# @param $@ - compilers to filter
1251# ------------------------------------------------------------------------------ 1270# ------------------------------------------------------------------------------
1252java-pkg_filter-compiler() { 1271java-pkg_filter-compiler() {
1253 JAVA_PKG_FILTER_COMPILER="${JAVA_PKG_FILTER_COMPILER} $@" 1272 JAVA_PKG_FILTER_COMPILER="${JAVA_PKG_FILTER_COMPILER} $@"
1273}
1274
1275# ------------------------------------------------------------------------------
1276# @ebuild-function java-pkg_force-compiler
1277#
1278# Used to force the use of particular compilers. Should be used in src_compile.
1279# A common use of this would be to force ecj-3.1 to be used on amd64, to avoid
1280# OutOfMemoryErrors that may come up.
1281#
1282# @param $@ - compilers to force
1283# ------------------------------------------------------------------------------
1284java-pkg_force-compiler() {
1285 JAVA_PKG_FORCE_COMPILER="$@"
1254} 1286}
1255 1287
1256# ------------------------------------------------------------------------------ 1288# ------------------------------------------------------------------------------
1257# @ebuild-function use_doc 1289# @ebuild-function use_doc
1258# 1290#
1729 echo "GENTOO_VM=${GENTOO_VM} CLASSPATH=\"${CLASSPATH}\" JAVA_HOME=\"${JAVA_HOME}\"" >&2 1761 echo "GENTOO_VM=${GENTOO_VM} CLASSPATH=\"${CLASSPATH}\" JAVA_HOME=\"${JAVA_HOME}\"" >&2
1730 echo "JAVACFLAGS=\"${JAVACFLAGS}\" COMPILER=\"${GENTOO_COMPILER}\"" >&2 1762 echo "JAVACFLAGS=\"${JAVACFLAGS}\" COMPILER=\"${GENTOO_COMPILER}\"" >&2
1731 echo "and of course, the output of emerge --info" >&2 1763 echo "and of course, the output of emerge --info" >&2
1732} 1764}
1733 1765
1766
1767# TODO document
1768# List jars in the source directory, ${S}
1769java-pkg_jar-list() {
1770 if [[ -n "${JAVA_PKG_DEBUG}" ]]; then
1771 einfo "Linked Jars"
1772 find "${S}" -type l -name '*.jar' -print0 | xargs -0 -r -n 500 ls -ald | sed -e "s,${WORKDIR},\${WORKDIR},"
1773 einfo "Jars"
1774 find "${S}" -type f -name '*.jar' -print0 | xargs -0 -r -n 500 ls -ald | sed -e "s,${WORKDIR},\${WORKDIR},"
1775 einfo "Classes"
1776 find "${S}" -type f -name '*.class' -print0 | xargs -0 -r -n 500 ls -ald | sed -e "s,${WORKDIR},\${WORKDIR},"
1777 fi
1778}
1779
1780# TODO document
1781# Verify that the classes were compiled for the right source / target
1782java-pkg_verify-classes() {
1783 ebegin "Verifying java class versions"
1784 #$(find ${D} -type f -name '*.jar' -o -name '*.class')
1785 class-version-verify.py -t $(java-pkg_get-target) -r ${D}
1786 result=$?
1787 eend ${result}
1788 if [[ ${result} == 0 ]]; then
1789 einfo "All good"
1790 else
1791 ewarn "Possible problem"
1792 die "Bad class files found"
1793 fi
1794}
1795
1796
1734# ------------------------------------------------------------------------------ 1797# ------------------------------------------------------------------------------
1735# @section-end internal 1798# @section-end internal
1736# ------------------------------------------------------------------------------ 1799# ------------------------------------------------------------------------------
1737 1800
1738java-pkg_check-phase() { 1801java-pkg_check-phase() {
1739 local phase=${1} 1802 local phase=${1}
1740 local funcname=${2} 1803 local funcname=${2}
1741 # TODO add check for java-stricter
1742 if [[ ${EBUILD_PHASE} != ${phase} ]]; then 1804 if is-java-strict && [[ ${EBUILD_PHASE} != ${phase} ]]; then
1743 java-pkg_announce-qa-violation \ 1805 java-pkg_announce-qa-violation \
1744 "${funcname} used outside of src_${phase}" 1806 "${funcname} used outside of src_${phase}"
1745 fi 1807 fi
1746} 1808}
1747 1809
1758 java-pkg_announce-qa-violation "deprecated USE flag 'jikes' in IUSE" 1820 java-pkg_announce-qa-violation "deprecated USE flag 'jikes' in IUSE"
1759 fi 1821 fi
1760} 1822}
1761 1823
1762java-pkg_announce-qa-violation() { 1824java-pkg_announce-qa-violation() {
1763 if hasq java-strict ${FEATURES}; then 1825 if is-java-strict; then
1764 echo "Java QA Notice: $@" >&2 1826 echo "Java QA Notice: $@" >&2
1765 increment-qa-violations 1827 increment-qa-violations
1766 fi 1828 fi
1767} 1829}
1768 1830
1769increment-qa-violations() { 1831increment-qa-violations() {
1770 let "JAVA_PKG_QA_VIOLATIONS+=1" 1832 let "JAVA_PKG_QA_VIOLATIONS+=1"
1771 export JAVA_PKG_QA_VIOLATIONS 1833 export JAVA_PKG_QA_VIOLATIONS
1772} 1834}
1773 1835
1836is-java-strict() {
1837 hasq java-strict ${FEATURES};
1838 return $?
1839}
1840
1774# ------------------------------------------------------------------------------ 1841# ------------------------------------------------------------------------------
1775# @eclass-end 1842# @eclass-end
1776# ------------------------------------------------------------------------------ 1843# ------------------------------------------------------------------------------

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.20