From 76146f2f8d537c1942aa3a3288893363cadb1390 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Tue, 23 Oct 2012 18:46:31 +0200 Subject: gbuild: make ct2n module work - add a preparation target to ExtensionTarget so added files can depend on unpacked tarball or custom target - add a "nodefaults" mode to Extension to disable some stuff Change-Id: I1fce6e948cef0a6d976e2e6555ef5c5f8e90cffb --- solenv/gbuild/Dictionary.mk | 2 +- solenv/gbuild/Extension.mk | 17 ++++++++++++++--- solenv/gbuild/ExtensionTarget.mk | 40 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 51 insertions(+), 8 deletions(-) (limited to 'solenv') diff --git a/solenv/gbuild/Dictionary.mk b/solenv/gbuild/Dictionary.mk index c40e376ee8fa..be81ef585bb2 100644 --- a/solenv/gbuild/Dictionary.mk +++ b/solenv/gbuild/Dictionary.mk @@ -62,7 +62,7 @@ gb_Dictionary_extensionname = Dictionary/$(1) # # gb_Dictionary_Dictionary dictionary srcdir define gb_Dictionary_Dictionary -$(call gb_ExtensionTarget_ExtensionTarget,$(call gb_Dictionary_extensionname,$(1)),$(2)) +$(call gb_ExtensionTarget_ExtensionTarget,$(call gb_Dictionary_extensionname,$(1)),$(SRCDIR)/$(2)) $(call gb_Dictionary_add_root_file,$(1),$(2)/$(gb_Dictionary_CONFIGURATION_FILE)) $(call gb_Dictionary_get_target,$(1)) : $(call gb_ExtensionTarget_get_target,$(call gb_Dictionary_extensionname,$(1))) diff --git a/solenv/gbuild/Extension.mk b/solenv/gbuild/Extension.mk index 281bac89420a..d2f29fce45a2 100644 --- a/solenv/gbuild/Extension.mk +++ b/solenv/gbuild/Extension.mk @@ -28,9 +28,11 @@ # Extension class define gb_Extension_Extension -$(call gb_ExtensionTarget_ExtensionTarget,$(1),$(2)) -$(call gb_ExtensionTarget_use_default_license,$(1)) -$(call gb_ExtensionTarget_use_default_description,$(1),$(2)) +$(call gb_ExtensionTarget_ExtensionTarget,$(1),$(if $(filter nodefaults,$(3)),$(2),$(SRCDIR)/$(2))) +$(if $(filter nodefaults,$(3)),,\ + $(call gb_ExtensionTarget_use_default_license,$(1))) +$(if $(filter nodefaults,$(3)),,\ + $(call gb_ExtensionTarget_use_default_description,$(1),$(2))) $(call gb_Extension_get_target,$(1)) : $(call gb_ExtensionTarget_get_target,$(1)) $(call gb_Extension_get_clean_target,$(1)) : $(call gb_ExtensionTarget_get_clean_target,$(1)) @@ -41,6 +43,10 @@ $$(eval $$(call gb_Module_register_target,$(call gb_Extension_get_target,$(1)),$ endef +define gb_Extension_set_license +$(call gb_ExtensionTarget_set_license,$(1),$(2)) +endef + define gb_Extension_add_file $(call gb_ExtensionTarget_add_file,$(1),$(2),$(3)) @@ -122,6 +128,11 @@ $(call gb_ExtensionTarget_add_helptreefile,$(1),$(2),$(3),$(4),$(5)) endef +define gb_Extension_use_unpacked +$(call gb_ExtensionTarget_use_unpacked,$(1),$(2)) + +endef + define gb_Extension_use_package $(call gb_ExtensionTarget_use_package,$(1),$(2)) diff --git a/solenv/gbuild/ExtensionTarget.mk b/solenv/gbuild/ExtensionTarget.mk index eb457856dc56..286e9d79b025 100644 --- a/solenv/gbuild/ExtensionTarget.mk +++ b/solenv/gbuild/ExtensionTarget.mk @@ -30,6 +30,8 @@ # platform # gb_ExtensionTarget_LICENSEFILE_DEFAULT +gb_ExtensionTarget__get_preparation_target = $(WORKDIR)/ExtensionTarget/$(1).prepare + gb_ExtensionTarget_ZIPCOMMAND := zip $(if $(findstring s,$(MAKEFLAGS)),-q) gb_ExtensionTarget_XRMEXTARGET := $(call gb_Executable_get_target_for_build,xrmex) gb_ExtensionTarget_XRMEXCOMMAND := \ @@ -79,9 +81,15 @@ $(call gb_ExtensionTarget_get_clean_target,%) : $(call gb_Output_announce,$*,$(false),OXT,3) $(call gb_Helper_abbreviate_dirs,\ rm -f -r $(call gb_ExtensionTarget_get_workdir,$*) && \ - rm -f $(call gb_ExtensionTarget_get_target,$*) \ + rm -f $(call gb_ExtensionTarget__get_preparation_target,$*) \ + $(call gb_ExtensionTarget_get_target,$*) \ ) +# preparation target to delay adding files produced by e.g. UnpackedTarball +$(call gb_ExtensionTarget__get_preparation_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && touch $@) + ifeq ($(strip $(gb_WITH_LANG)),) $(call gb_ExtensionTarget_get_workdir,%)/description.xml : $(call gb_Output_announce,$*/description.xml,$(true),CPY,3) @@ -126,10 +134,14 @@ define gb_ExtensionTarget_ExtensionTarget $(call gb_ExtensionTarget_get_target,$(1)) : DESCRIPTION := $(call gb_ExtensionTarget_get_target,$(1)) : FILES := META-INF description.xml $(call gb_ExtensionTarget_get_target,$(1)) : LICENSE := -$(call gb_ExtensionTarget_get_target,$(1)) : LOCATION := $(SRCDIR)/$(2) +$(call gb_ExtensionTarget_get_target,$(1)) : LOCATION := $(2) $(call gb_ExtensionTarget_get_target,$(1)) : PLATFORM := $(PLATFORMID) $(call gb_ExtensionTarget_get_target,$(1)) : PRJNAME := $(firstword $(subst /, ,$(2))) -$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : $(SRCDIR)/$(2)/description.xml +$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : \ + $(SRCDIR)/$(2)/description.xml +$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml :| \ + $(call gb_ExtensionTarget__get_preparation_target,$(1)) + ifneq ($(strip $(gb_WITH_LANG)),) $(call gb_ExtensionTarget_get_target,$(1)) : SDF := $(gb_SDFLOCATION)/$(2)/localize.sdf $(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : $(gb_SDFLOCATION)/$(2)/localize.sdf @@ -147,6 +159,14 @@ $(call gb_ExtensionTarget_get_target,$(1)) : $(gb_ExtensionTarget_LICENSEFILE_DE endef +define gb_ExtensionTarget_add_license +$(call gb_ExtensionTarget_get_target,$(1)) : FILES += registration +$(call gb_ExtensionTarget_get_target,$(1)) : LICENSE := $(2) +$(call gb_ExtensionTarget_get_target,$(1)) : $(2) +$(2) :| $(call gb_ExtensionTarget__get_preparation_target,$(1)) + +endef + # Use the default description file define gb_ExtensionTarget_use_default_description $(call gb_ExtensionTarget_add_file,$(1),description-en-US.txt,$(SRCDIR)/$(2)/description-en-US.txt) @@ -165,6 +185,7 @@ endef define gb_ExtensionTarget_add_file $(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(2) $(call gb_ExtensionTarget_get_target,$(1)) : $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) +$(3) :| $(call gb_ExtensionTarget__get_preparation_target,$(1)) $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(3) mkdir -p $$(dir $$@) && \ cp -f $(if $(4),$(4),$(3)) $$@ @@ -214,6 +235,8 @@ $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : SDF := $(gb_SDFLOCATION)$(sub $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(dir $(3)))localize.sdf endif $(call gb_ExtensionTarget_get_target,$(1)) : $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) +$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) \ + :| $(call gb_ExtensionTarget__get_preparation_target,$(1)) $(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : $(3) \ $(gb_ExtensionTarget_PROPMERGETARGET) $$(call gb_Output_announce,$(2),$(true),PRP,3) @@ -377,12 +400,21 @@ define gb_ExtensionTarget__add_compiled_help_dependency_onelang $(call gb_ExtensionTarget_get_target,$(1)) : FILES += help/$(2) $(call gb_ExtensionTarget_get_target,$(1)) : \ $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(2).done +$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(2).done \ + :| $(call gb_ExtensionTarget__get_preparation_target,$(1)) endef +define gb_ExtensionTarget_use_unpacked +$(call gb_ExtensionTarget__get_preparation_target,$(1)) \ + :| $(call gb_UnpackedTarball_get_final_target,$(2)) + +endef + define gb_ExtensionTarget_use_package -$(call gb_ExtensionTarget_get_target,$(1)) : $(call gb_Package_get_target,$(2)) +$(call gb_ExtensionTarget__get_preparation_target,$(1)) \ + :| $(call gb_Package_get_target,$(2)) endef -- cgit