[oe] [meta-java][PATCH] java-library.bbclass: compatibility with per-recipe sysroots

S. Lockwood-Childs sjl at vctlabs.com
Wed Jul 12 08:36:34 UTC 2017


The removebinaries task was intended to remove pre-built .jar and .class files
from the unpacked source, but when per-recipe sysroots were implemented and
ended up under WORKDIR, .jar or .class in those sysroots inadvertently started 
getting killed as well.

For instance, ${WORKDIR}/recipe-sysroot-native/usr/share/java/ecj-bootstrap.jar
was deleted when attempting to build jlex-native... which made javac in
that sysroot rather unhappy.

Solve by excluding both recipe-sysroot and recipe-sysroot-native dirs
from the search-and-destroy operation.

Signed-off-by: S. Lockwood-Childs <sjl at vctlabs.com>
---
 classes/java-library.bbclass | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/classes/java-library.bbclass b/classes/java-library.bbclass
index 58d5a40..ce1cd28 100644
--- a/classes/java-library.bbclass
+++ b/classes/java-library.bbclass
@@ -50,8 +50,10 @@ 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 {} \;
+  find ${WORKDIR} ! -path "${RECIPE_SYSROOT}/*" ! -path "${RECIPE_SYSROOT_NATIVE}/*" \
+                  -name "*.jar" -exec rm {} \;
+  find ${WORKDIR} ! -path "${RECIPE_SYSROOT}/*" ! -path "${RECIPE_SYSROOT_NATIVE}/*" \
+                  -name "*.class" -exec rm {} \;
 }
 
 addtask removebinaries after do_unpack before do_patch
-- 
1.9.4




More information about the Openembedded-devel mailing list