summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--solenv/gbuild/JavaClassSet.mk20
-rw-r--r--solenv/gbuild/JunitTest.mk10
2 files changed, 24 insertions, 6 deletions
diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk
index 838b957620ae..d21f649b489f 100644
--- a/solenv/gbuild/JavaClassSet.mk
+++ b/solenv/gbuild/JavaClassSet.mk
@@ -69,8 +69,8 @@ $(call gb_JavaClassSet_get_preparation_target,%) :
mkdir -p $(dir $@) && touch $@
define gb_JavaClassSet_JavaClassSet
-$(call gb_JavaClassSet_get_target,$(1)) : JARDEPS := $(call gb_JavaClassSet_get_preparation_target,$(1))
$(call gb_JavaClassSet_get_target,$(1)) : $(call gb_JavaClassSet_get_preparation_target,$(1))
+$(call gb_JavaClassSet_get_target,$(1)) : JARDEPS := $(call gb_JavaClassSet_get_preparation_target,$(1))
endef
@@ -112,16 +112,15 @@ endef
# build order dependency is a hack to get these prerequisites out of the way in the build command
define gb_JavaClassSet_add_jar
$(call gb_JavaClassSet_get_target,$(1)) : $(2)
-$(call gb_JavaClassSet_get_target,$(1)) : T_CP := $$(T_CP)$(gb_CLASSPATHSEP)$(strip $(2))
$(call gb_JavaClassSet_get_target,$(1)) : JARDEPS += $(2)
+$(call gb_JavaClassSet_get_target,$(1)) : T_CP := $$(if $$(T_CP),$$(T_CP)$(gb_CLASSPATHSEP))$(strip $(2))
$(2) :| $(gb_Helper_PHONY)
endef
# this does not generate dependency on the jar
define gb_JavaClassSet_add_system_jar
-$(call gb_JavaClassSet_get_target,$(1)) : T_CP := $$(T_CP)$(gb_CLASSPATHSEP)$(strip $(2))
-$(call gb_JavaClassSet_get_target,$(1)) : JARDEPS += $(2)
+$(call gb_JavaClassSet_get_target,$(1)) : T_CP := $$(if $$(T_CP),$$(T_CP)$(gb_CLASSPATHSEP))$(strip $(2))
endef
@@ -135,6 +134,19 @@ $(foreach jar,$(2),$(call gb_JavaClassSet_add_system_jar,$(1),$(jar)))
endef
+# gb_JavaClassSet_add_jar_classset: Like gb_JavaClassSet_add_jar, but instead of
+# using the jar, use the directory tree with the class files that make up the
+# jar. This is sometimes necessary in JunitTests that have test classes in
+# packages that belong to a sealed jar.
+# $1: token identifying this JavaClassSet
+# $2: token identifying the Jar being used
+define gb_JavaClassSet_add_jar_classset
+$(call gb_JavaClassSet_get_target,$(1)) : $(call gb_JavaClassSet_get_target,$(call gb_Jar_get_classsetname,$(2)))
+$(call gb_JavaClassSet_get_target,$(1)) : JARDEPS += $(call gb_JavaClassSet_get_target,$(call gb_Jar_get_classsetname,$(2)))
+$(call gb_JavaClassSet_get_target,$(1)) : T_CP := $$(if $$(T_CP),$$(T_CP)$(gb_CLASSPATHSEP))$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,$(2)))
+
+endef
+
# this forwards to functions that must be defined in RepositoryExternal.mk.
# $(eval $(call gb_LinkTarget_use_external,library,external))
define gb_JavaClassSet_use_external
diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk
index 5cef3a43238e..19b5e09c85ea 100644
--- a/solenv/gbuild/JunitTest.mk
+++ b/solenv/gbuild/JunitTest.mk
@@ -52,7 +52,6 @@ $(call gb_JunitTest_get_target,%) :
org.junit.runner.JUnitCore \
$(CLASSES) > $@.log 2>&1 || \
(grep -v -e 'at org.junit.' \
- -e 'at com.sun.star.lib.uno.' \
-e 'at java.lang.reflect.' \
-e 'at sun.reflect.' $@.log \
&& echo "see full error log at $@.log" \
@@ -69,7 +68,7 @@ $(call gb_JunitTest_get_target,%) :
$(CLEAN_CMD)
define gb_JunitTest_JunitTest
-$(call gb_JunitTest_get_target,$(1)) : T_CP := $(value XCLASSPATH)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(gb_CLASSPATHSEP)$(OUTDIR)/lib
+$(call gb_JunitTest_get_target,$(1)) : T_CP := $(if $(value XCLASSPATH),$(value XCLASSPATH)$(gb_CLASSPATHSEP))$(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(gb_CLASSPATHSEP)$(OUTDIR)/lib
$(call gb_JunitTest_get_target,$(1)) : CLASSES :=
$(call gb_JunitTest_JunitTest_platform,$(1))
@@ -118,6 +117,13 @@ $(foreach jar,$(2),$(call gb_JunitTest_add_jar,$(1),$(jar)))
endef
+# see gb_JavaClassSet_add_jar_classset
+define gb_JunitTest_add_jar_classset
+$(call gb_JavaClassSet_add_jar_classset,$(call gb_JunitTest_get_classsetname,$(1)),$(2))
+$(call gb_JunitTest_get_target,$(1)) : T_CP := $$(T_CP)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(call gb_Jar_get_classsetname,$(2)))
+
+endef
+
define gb_JunitTest_add_package_dependency
$(call gb_JavaClassSet_add_package_dependency,$(call gb_JunitTest_get_classsetname,$(1)),$(2))