diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-08-17 11:02:49 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-08-17 12:52:25 +0200 |
commit | 5a4bcd3b7578523af6a2754369231ca1cf413f82 (patch) | |
tree | 6d055022ed60cb89e8419f97610eb465a46cb91b /solenv | |
parent | 79c9ea3818334b39eda6996cf488143a5dc586d4 (diff) |
gbuild: register all jars
Change-Id: I9f49970e5e06d1afd3fc066a20d1671c93e262fc
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/Helper.mk | 18 | ||||
-rw-r--r-- | solenv/gbuild/Jar.mk | 8 | ||||
-rw-r--r-- | solenv/gbuild/JavaClassSet.mk | 10 | ||||
-rw-r--r-- | solenv/gbuild/JunitTest.mk | 5 |
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 |