summaryrefslogtreecommitdiff
path: root/solenv/gbuild
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/gbuild')
-rw-r--r--solenv/gbuild/Library.mk17
-rw-r--r--solenv/gbuild/Package.mk10
2 files changed, 25 insertions, 2 deletions
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 17163a1b2866..e8cd313ac391 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -55,10 +55,24 @@ $$(eval $$(call gb_Output_info,Currently known libraries are: $(sort $(gb_Librar
$$(eval $$(call gb_Output_error,Library $(1) must be registered in Repository.mk))
endif
$(call gb_Library_get_target,$(1)) : SOVERSION :=
-$(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1)))
+
+$(if $(gb_Package_PRESTAGEDIR),\
+ $(if $(wildcard $(gb_Package_PRESTAGEDIR)/$(call gb_Library_get_instdir,$(1))/$(call gb_Library_get_runtime_filename,$(1))),\
+ $(call gb_Library__Library_impl_copy,$(0),$(call gb_Library_get_instdir,$(1))/$(call gb_Library_get_runtime_filename,$(1))),\
+ $(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1)))\
+ ),
+ $(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1)))\
+)
endef
+define gb_Library__Library_impl_copy
+$(call gb_Package_Package,Library_Copy_$(1),$(gb_Package_PRESTAGEDIR))
+$(call gb_Package_set_outdir,Library_Copy_$(1),$(INSTDIR))
+$(call gb_Package_add_file,Library_Copy_$(1),$(2),$(2))
+$(OUTDIR)/lib/$(notdir $(2)) : $(INSTDIR)/$(2)
+endef
+
define gb_Library__Library_impl
$(call gb_LinkTarget_LinkTarget,$(2),Library_$(1))
$(call gb_LinkTarget_set_targettype,$(2),Library)
@@ -80,6 +94,7 @@ $(if $(filter $(call gb_Library_get_layer,$(1)):%,$(gb_Library_LAYER_DIRS)),\
endif
$$(eval $$(call gb_Module_register_target,$(call gb_Library__get_final_target,$(1)),$(call gb_Library_get_clean_target,$(1))))
+
$(call gb_Helper_make_userfriendly_targets,$(1),Library,$(call gb_Library__get_final_target,$(1)))
$(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk
index 52f82f115269..2a1fd5380926 100644
--- a/solenv/gbuild/Package.mk
+++ b/solenv/gbuild/Package.mk
@@ -49,7 +49,15 @@ $(OUTDIR)/inc/% :
define gb_PackagePart_PackagePart
$(4)/$(1) : $(2) | $(dir $(4)/$(1)).dir
$(2) :| $(3)
-$(call gb_Deliver_add_deliverable,$(4)/$(1),$(2),$(3))
+
+$(if $(gb_Package_PRESTAGEDIR),\
+ $(if $(wildcard $(gb_Package_PRESTAGEDIR)/$(1)),\
+ $(call gb_Deliver_add_deliverable,$(4)/$(1),$(gb_Package_PRESTAGEDIR)/$(1),$(3)),\
+ $(call gb_Deliver_add_deliverable,$(4)/$(1),$(2),$(3)) \
+ ),\
+ $(call gb_Deliver_add_deliverable,$(4)/$(1),$(2),$(3)) \
+)
+
endef