summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-08-17 11:02:49 +0200
committerMichael Stahl <mstahl@redhat.com>2012-08-17 12:52:25 +0200
commit5a4bcd3b7578523af6a2754369231ca1cf413f82 (patch)
tree6d055022ed60cb89e8419f97610eb465a46cb91b /solenv
parent79c9ea3818334b39eda6996cf488143a5dc586d4 (diff)
gbuild: register all jars
Change-Id: I9f49970e5e06d1afd3fc066a20d1671c93e262fc
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/Helper.mk18
-rw-r--r--solenv/gbuild/Jar.mk8
-rw-r--r--solenv/gbuild/JavaClassSet.mk10
-rw-r--r--solenv/gbuild/JunitTest.mk5
4 files changed, 34 insertions, 7 deletions
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
index 0c241f639dc5..a43977b7a143 100644
--- a/solenv/gbuild/Helper.mk
+++ b/solenv/gbuild/Helper.mk
@@ -106,10 +106,12 @@ define gb_Helper_init_registries
gb_Executable_VALIDGROUPS := UREBIN SDK OOO NONE
gb_Library_VALIDGROUPS := OOOLIBS PLAINLIBS_NONE PLAINLIBS_URE PLAINLIBS_OOO RTLIBS RTVERLIBS UNOLIBS_URE UNOLIBS_OOO UNOVERLIBS EXTENSIONLIBS
gb_StaticLibrary_VALIDGROUPS := PLAINLIBS
+gb_Jar_VALIDGROUPS := URE OOO
$$(foreach group,$$(gb_Executable_VALIDGROUPS),$$(eval gb_Executable_$$(group) :=))
$$(foreach group,$$(gb_Library_VALIDGROUPS),$$(eval gb_Library_$$(group) :=))
$$(foreach group,$$(gb_StaticLibrary_VALIDGROUPS),$$(eval gb_StaticLibrary_$$(group) :=))
+$$(foreach group,$$(gb_Jar_VALIDGROUPS),$$(eval gb_Jar_$$(group) :=))
endef
@@ -123,6 +125,7 @@ define gb_Helper_collect_knownlibs
gb_Library_KNOWNLIBS := $$(foreach group,$$(gb_Library_VALIDGROUPS),$$(gb_Library_$$(group)))
gb_StaticLibrary_KNOWNLIBS := $$(foreach group,$$(gb_StaticLibrary_VALIDGROUPS),$$(gb_StaticLibrary_$$(group)))
gb_Executable_KNOWN := $$(foreach group,$$(gb_Executable_VALIDGROUPS),$$(gb_Executable_$$(group)))
+gb_Jar_KNOWN := $$(foreach group,$$(gb_Jar_VALIDGROUPS),$$(gb_Jar_$$(group)))
endef
@@ -171,6 +174,21 @@ gb_StaticLibrary_$(1) += $(2)
endef
+define gb_Helper_register_jars
+ifeq ($$(filter $(1),$$(gb_Jar_VALIDGROUPS)),)
+$$(eval $$(call gb_Output_error,$(1) is not a valid group for jars. Valid groups are: $$(gb_Jar_VALIDGROUPS)))
+endif
+$(foreach group,$(gb_Jar_VALIDGROUPS),\
+ $(foreach target,$(2),\
+ $(if $(filter $(target),$(gb_Jar_$(group))),\
+ $(call gb_Output_error,gb_Helper_register_jars: already registered: $(target)))))
+$(if $(filter-out $(words $(2)),$(words $(sort $(2)))),\
+ $(call gb_Output_error,gb_Helper_register_jars: contains duplicates: $(2)))
+
+gb_Jar_$(1) += $(2)
+
+endef
+
define gb_Helper_execute
$(gb_Helper_set_ld_path) $(OUTDIR_FOR_BUILD)/bin/$(1)
endef
diff --git a/solenv/gbuild/Jar.mk b/solenv/gbuild/Jar.mk
index 1985d3b5e269..352423bfbfbe 100644
--- a/solenv/gbuild/Jar.mk
+++ b/solenv/gbuild/Jar.mk
@@ -88,6 +88,10 @@ $(call gb_Jar_get_target,%) : $(call gb_JavaClassSet_get_target,$(call gb_Jar_ge
# adds jar files to DeliverLogTarget
# adds dependency for outdir target to workdir target (pattern rule for delivery is in Package.mk)
define gb_Jar_Jar
+ifeq (,$$(findstring $(1),$$(gb_Jar_KNOWN)))
+$$(eval $$(call gb_Output_info,Currently known jars are: $(sort $(gb_Jar_KNOWN)),ALL))
+$$(eval $$(call gb_Output_error,Jar $(1) must be registered in Repository.mk))
+endif
$(call gb_Jar_get_target,$(1)) : MANIFEST :=
$(call gb_Jar_get_target,$(1)) : JARCLASSPATH :=
$(call gb_Jar_get_target,$(1)) : PACKAGEROOTS :=
@@ -192,8 +196,8 @@ gb_Jar_default_jars := unoloader ridl jurt unoil juh java_uno
# remember: classpath is "inherited" to ClassSet
define gb_Jar_use_jar
$(call gb_JavaClassSet_use_jar,$(call gb_Jar_get_classsetname,$(1)),$(2))
-$(if $(filter-out $(gb_Jar_default_jars),$(basename $(notdir $(2)))),\
- $(call gb_Jar_add_manifest_classpath,$(1),$(notdir $(2))))
+$(if $(filter-out $(gb_Jar_default_jars),$(2)),\
+ $(call gb_Jar_add_manifest_classpath,$(1),$(2).jar))
endef
diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk
index 67e48e6f7a1e..c28875e87dfa 100644
--- a/solenv/gbuild/JavaClassSet.mk
+++ b/solenv/gbuild/JavaClassSet.mk
@@ -121,9 +121,13 @@ endef
# problem: currently we can't get these dependencies to work
# build order dependency is a hack to get these prerequisites out of the way in the build command
define gb_JavaClassSet_use_jar
-$(call gb_JavaClassSet_get_target,$(1)) : $(2)
-$(call gb_JavaClassSet_get_target,$(1)) : JARDEPS += $(2)
-$(call gb_JavaClassSet_add_classpath,$(1),$(2))
+ifneq (,$$(filter-out $(gb_Jar_KNOWN),$(2)))
+$$(eval $$(call gb_Output_info,currently known jars are: $(sort $(gb_Jar_KNOWN)),ALL))
+$$(eval $$(call gb_Output_error,Cannot link against jar $$(filter-out $(gb_Jar_KNOWN),$(2)). Jars must be registered in Repository.mk))
+endif
+$(call gb_JavaClassSet_get_target,$(1)) : $(call gb_Jar_get_outdir_target,$(2))
+$(call gb_JavaClassSet_get_target,$(1)) : JARDEPS += $(call gb_Jar_get_outdir_target,$(2))
+$(call gb_JavaClassSet_add_classpath,$(1),$(call gb_Jar_get_outdir_target,$(2)))
$(2) :| $(gb_Helper_PHONY)
endef
diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk
index b49337e22368..590f8480581b 100644
--- a/solenv/gbuild/JunitTest.mk
+++ b/solenv/gbuild/JunitTest.mk
@@ -109,8 +109,8 @@ endef
define gb_JunitTest_use_jar
$(call gb_JavaClassSet_use_jar,$(call gb_JunitTest_get_classsetname,$(1)),$(2))
-$(call gb_JunitTest_get_target,$(1)) : T_CP := $$(T_CP)$$(gb_CLASSPATHSEP)$(2)
-$(call gb_JunitTest_get_target,$(1)) : $(2)
+$(call gb_JunitTest_get_target,$(1)) : T_CP := $$(T_CP)$$(gb_CLASSPATHSEP)$(call gb_Jar_get_outdir_target,$(2))
+$(call gb_JunitTest_get_target,$(1)) : $(call gb_Jar_get_outdir_target,$(2))
$(2) :| $(gb_Helper_PHONY)
endef
@@ -144,6 +144,7 @@ endef
define gb_JunitTest_use_customtarget
$(call gb_JavaClassSet_use_customtarget,$(call gb_JunitTest_get_classsetname,$(1)),$(2))
+$(call gb_JunitTest_get_target,$(1)) : T_CP := $$(T_CP)$$(gb_CLASSPATHSEP)$(call gb_CustomTarget_get_workdir,$(2))
endef