diff options
Diffstat (limited to 'classes/java-library.bbclass')
-rw-r--r-- | classes/java-library.bbclass | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/classes/java-library.bbclass b/classes/java-library.bbclass new file mode 100644 index 0000000..4396bb3 --- /dev/null +++ b/classes/java-library.bbclass @@ -0,0 +1,58 @@ +# Inherit this bbclass for each java recipe that builds a Java library (jar file[s]). +# +# It automatically adds important build dependencies, defines JPN (Java Package Name) +# a package named ${JPN} whose contents are those of ${datadir}/java (the jar location). +# +# The JPN is basically lib${PN}-java but takes care of the fact that ${PN} already +# starts with "lib" and/or ends with "-java". In case the "lib" prefix is part of +# your package's normal name (e.g. liberator) the guessing is wrong and you have +# to set JPN manually! + +inherit java + +# use java_stage for native packages +JAVA_NATIVE_STAGE_INSTALL = "1" + +def java_package_name(d): + import bb; + + pre="" + post="" + + pn = bb.data.getVar('PN', d, 1) + if not pn.startswith("lib"): + pre='lib' + + if not pn.endswith("-java"): + post='-java' + + return pre + pn + post + +JPN ?= "${@java_package_name(d)}" + +DEPENDS_prepend = "virtual/javac-native fastjar-native " + +PACKAGES = "${JPN}" + +PACKAGE_ARCH_${JPN} = "all" + +FILES_${JPN} = "${datadir_java}" + +# File name of the libraries' main Jar file +JARFILENAME = "${BP}.jar" + +# Space-separated list of alternative file names. +ALTJARFILENAMES = "${BPN}.jar" + +# Java "source" distributions often contain precompiled things +# we want to delete first. +do_removebinaries() { + find ${WORKDIR} -name "*.jar" -exec rm {} \; + find ${WORKDIR} -name "*.class" -exec rm {} \; +} + +addtask removebinaries after do_unpack before do_patch + +do_install() { + oe_jarinstall ${JARFILENAME} ${ALTJARFILENAMES} +} |