diff options
author | David Tardon <dtardon@redhat.com> | 2011-04-23 18:02:14 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2011-04-23 21:07:58 +0200 |
commit | 7d3a24747a16f0e81339a4e3ace36e0742075d6a (patch) | |
tree | f307edb9f5f5b2a44615d27e4c44d70d759507ae /solenv | |
parent | 1e8420adae4a3528e73d4139cf5297600f001039 (diff) |
add class for creating service rdbs
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/RdbTarget.mk | 81 | ||||
-rw-r--r-- | solenv/gbuild/TargetLocations.mk | 3 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 1 |
3 files changed, 85 insertions, 0 deletions
diff --git a/solenv/gbuild/RdbTarget.mk b/solenv/gbuild/RdbTarget.mk new file mode 100644 index 000000000..53548dd4a --- /dev/null +++ b/solenv/gbuild/RdbTarget.mk @@ -0,0 +1,81 @@ +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# David Tardon, Red Hat Inc. <dtardon@redhat.com> +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Major Contributor(s): +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +gb_RdbTarget__get_old_component_target = $(OUTDIR)/xml/$(1).component + +$(call gb_RdbTarget_get_target,%) : + $(call gb_Output_announce,$*,$(true),RDB,1) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + echo '<?xml version="1.0"?><components xmlns="http://openoffice.org/2010/uno-components">' > $@ && \ + $(gb_AWK) -- \ + '/^<\?xml version.*/ { next; } \ + { gsub(/vnd.sun.star.expand:\$$OOO_BASE_DIR\/program/, "vnd.sun.star.expand:$$OOO_BASE_DIR",$$0); gsub(/vnd.sun.star.expand:\$$BRAND_BASE_DIR\/program/, "vnd.sun.star.expand:$$BRAND_BASE_DIR",$$0); print; }' \ + $(foreach component,$(COMPONENTS),$(call gb_ComponentTarget_get_target,$(component))) \ + $(foreach component,$(OLD_COMPONENTS),$(call gb_RdbTarget__get_old_component_target,$(component))) \ + >> $@ && \ + echo '</components>' >> $@) + +.PHONY : $(call gb_RdbTarget_get_clean_target,%) +$(call gb_RdbTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),RDB,1) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_RdbTarget_get_outdir_target,$*) $(call gb_RdbTarget_get_target,$*)) + +$(call gb_RdbTarget_get_external_target,%) : + $(call gb_Deliver_deliver,$<,$@) + +define gb_RdbTarget_RdbTarget +$(call gb_RdbTarget_get_target,$(1)) : COMPONENTS := +$(call gb_RdbTarget_get_target,$(1)) : OLD_COMPONENTS := +$(call gb_RdbTarget_get_clean_target,$(1)) : COMPONENTS := +$(call gb_RdbTarget_get_clean_target,$(1)) : OLD_COMPONENTS := +ifeq ($(2),$(true)) +$(call gb_RdbTarget_get_outdir_target,$(1)) : $(call gb_RdbTarget_get_target,$(1)) +$(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_outdir_target,$(1)),$(call gb_RdbTarget_get_target,$(1))) +endif +endef + +define gb_RdbTarget_add_component +$(call gb_RdbTarget_get_target,$(1)) : COMPONENTS += $(2) +$(call gb_RdbTarget_get_clean_target,$(1)) : COMPONENTS += $(2) +endef + +define gb_RdbTarget_add_components +$(foreach component,$(2),$(eval $(call gb_RdbTarget_add_component,$(1),$(component)))) +endef + +define gb_RdbTarget_add_old_component +$(call gb_RdbTarget_get_target,$(1)) : OLD_COMPONENTS += $(2) +$(call gb_RdbTarget_get_clean_target,$(1)) : OLD_COMPONENTS += $(2) +endef + +define gb_RdbTarget_add_old_components +$(foreach component,$(2),$(eval $(call gb_RdbTarget_add_old_component,$(1),$(component)))) +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index 051b536fe..f2c732045 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -36,6 +36,7 @@ gb_PackagePart_get_destinations = \ $(OUTDIR)/bin \ gb_PackagePart_get_target = $(OUTDIR)/$(1) +gb_RdbTarget_get_outdir_target = $(OUTDIR)/xml/$(1).rdb gb_ResTarget_get_outdir_imagelist_target = $(OUTDIR)/res/img/$(1).ilst gb_ResTarget_get_outdir_target = $(OUTDIR)/bin/$(1).res @@ -82,6 +83,7 @@ gb_Package_get_preparation_target = $(WORKDIR)/Package/prepared/$(1) gb_Package_get_target = $(WORKDIR)/Package/$(1) gb_PrecompiledHeader_get_dep_target = $(WORKDIR)/Dep/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.pch.d gb_PrecompiledHeader_get_target = $(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.pch +gb_RdbTarget_get_target = $(WORKDIR)/RdbTarget/$(1).rdb gb_ResTarget_get_imagelist_target = $(WORKDIR)/ResTarget/$(1).ilst gb_ResTarget_get_target = $(WORKDIR)/ResTarget/$(1).res gb_SdiTarget_get_target = $(WORKDIR)/SdiTarget/$(1) @@ -117,6 +119,7 @@ $(eval $(call gb_Helper_make_clean_targets,\ NoexPrecompiledHeader \ PackagePart \ PrecompiledHeader \ + RdbTarget \ ResTarget \ SdiTarget \ SrsTarget \ diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 61055f98b..b17371736 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -270,6 +270,7 @@ include $(foreach class, \ Package \ CustomTarget \ PrecompiledHeaders \ + RdbTarget \ CppunitTest \ JavaClassSet \ JunitTest \ |