diff options
-rw-r--r-- | solenv/gbuild/Helper.mk | 12 | ||||
-rw-r--r-- | solenv/gbuild/Library.mk | 3 |
2 files changed, 14 insertions, 1 deletions
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk index e025cb5a9c78..cfa0ddf52c91 100644 --- a/solenv/gbuild/Helper.mk +++ b/solenv/gbuild/Helper.mk @@ -202,12 +202,24 @@ $(call gb_Executable_get_command,$(firstword $(1))) $(wordlist 2,$(words $(1)),$ endef # define gb_Helper_install registered-target target-to-install target-from-workdir +# FIXME how is this stuff cleaned??? define gb_Helper_install $(1) :| $(2) $(2) : $(3) | $(dir $(2)).dir $(call gb_Deliver_add_deliverable,$(2),$(3),$(2)) endef +# 4th parameter overrides 3rd for the dependency, necessary for Library +# which needs to copy DLL but that must not be a real target... +define gb_Library__install +$(1) :| $(2) +$(2) : $(4) | $(dir $(2)).dir + cp $(3) $$@ + +$(call gb_Deliver_add_deliverable,$(2),$(3),$(2)) +endef + + # gb_Helper_OUTDIRLIBDIR is set by the platform to the path the dynamic linker need to use # for libraries from the OUTDIR diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index 2fd559ab70ea..d3488d20022b 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -87,8 +87,9 @@ $(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(call gb_Library_Library_platform,$(1),$(2),$(gb_Library_DLLDIR)/$(call gb_Library_get_dllname,$(1))) $(if $(call gb_Library_get_instdir,$(1)),\ -$(call gb_Helper_install,$(call gb_Library__get_final_target,$(1)), \ +$(call gb_Library__install,$(call gb_Library__get_final_target,$(1)), \ $(call gb_Library_get_install_target,$(1)), \ + $(gb_Library_DLLDIR)/$(call gb_Library_get_runtime_filename,$(1)), \ $(call gb_LinkTarget_get_target,$(2))) \ ) |