summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-10-23 18:46:31 +0200
committerMichael Stahl <mstahl@redhat.com>2012-10-23 19:42:36 +0200
commit76146f2f8d537c1942aa3a3288893363cadb1390 (patch)
tree5583e93c034d56c1e7f9fd478a25185e9f025d9b /solenv
parent97d83c45faf42ada9993239c3835641d8bbd070f (diff)
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
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/Dictionary.mk2
-rw-r--r--solenv/gbuild/Extension.mk17
-rw-r--r--solenv/gbuild/ExtensionTarget.mk40
3 files changed, 51 insertions, 8 deletions
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