diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2013-05-24 14:47:06 +0200 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2013-06-07 15:14:28 +0200 |
commit | a714cf18b1c6cadae93df92376a11aeb98b65418 (patch) | |
tree | ac25d8d5caa4a3427296d69717b0f548965ef4a0 | |
parent | b8e09de4e00ae21728ddc9cc9179bc8f95d4cfc5 (diff) |
gbuild: install extension directly from workdir
Also kill ExtensionTarget indirection causing duplication.
Change-Id: I24f7e6d85df6acf2ededaade20dd1a788d916594
-rw-r--r-- | scp2/source/extensions/file_extensions.scp | 8 | ||||
-rw-r--r-- | solenv/gbuild/Extension.mk | 384 | ||||
-rw-r--r-- | solenv/gbuild/ExtensionTarget.mk | 455 | ||||
-rw-r--r-- | solenv/gbuild/TargetLocations.mk | 10 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 3 | ||||
-rw-r--r-- | solenv/gbuild/platform/IOS_ARM_GCC.mk | 4 | ||||
-rw-r--r-- | solenv/gbuild/platform/WNT_INTEL_GCC.mk | 4 | ||||
-rw-r--r-- | solenv/gbuild/platform/com_MSC_class.mk | 4 | ||||
-rw-r--r-- | solenv/gbuild/platform/macosx.mk | 4 | ||||
-rw-r--r-- | solenv/gbuild/platform/solaris.mk | 4 | ||||
-rw-r--r-- | solenv/gbuild/platform/unxgcc.mk | 4 |
11 files changed, 375 insertions, 509 deletions
diff --git a/scp2/source/extensions/file_extensions.scp b/scp2/source/extensions/file_extensions.scp index 521b9b48a883..df0f5d2cb316 100644 --- a/scp2/source/extensions/file_extensions.scp +++ b/scp2/source/extensions/file_extensions.scp @@ -30,7 +30,7 @@ File gid_File_Oxt_Presentation_Minimizer TXT_FILE_BODY; Styles = (PACKED, ARCHIVE); Dir = gid_Brand_Dir_Share_Extensions_Presentation_Minimizer; - Name = "presentation-minimizer.oxt"; + Name = "Extension/presentation-minimizer.oxt"; End #endif @@ -43,7 +43,7 @@ File gid_File_Oxt_MediaWiki TXT_FILE_BODY; Styles = (PACKED, ARCHIVE); Dir = gid_Brand_Dir_Share_Extensions_MediaWiki; - Name = "wiki-publisher.oxt"; + Name = "Extension/wiki-publisher.oxt"; End #endif @@ -173,7 +173,7 @@ File gid_File_Oxt_NLPSolver TXT_FILE_BODY; Styles = (PACKED, ARCHIVE); Dir = gid_Brand_Dir_Share_Extensions_NLPSolver; - Name = "nlpsolver.oxt"; + Name = "Extension/nlpsolver.oxt"; End #endif @@ -199,7 +199,7 @@ File gid_File_Oxt_MySQLConnector TXT_FILE_BODY; Styles = (PACKED, ARCHIVE); Dir = gid_Brand_Dir_Share_Extensions_MySQLConnector; - Name = "mysql-connector-ooo.oxt"; + Name = "Extension/mysql-connector-ooo.oxt"; End #endif diff --git a/solenv/gbuild/Extension.mk b/solenv/gbuild/Extension.mk index 37ad1e270a09..3990e84b6781 100644 --- a/solenv/gbuild/Extension.mk +++ b/solenv/gbuild/Extension.mk @@ -10,21 +10,143 @@ # Extension class -define gb_Extension_Extension -$(call gb_ExtensionTarget_ExtensionTarget,$(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)) +# platform +# gb_Extension_LICENSEFILE_DEFAULT + +gb_Extension__get_preparation_target = $(WORKDIR)/Extension/$(1).prepare + +gb_Extension_ZIPCOMMAND := zip $(if $(findstring s,$(MAKEFLAGS)),-q) +gb_Extension_XRMEXDEPS := $(call gb_Executable_get_runtime_dependencies,xrmex) +gb_Extension_XRMEXCOMMAND := $(call gb_Executable_get_command,xrmex) + +gb_Extension_PROPMERGEDEPS := $(call gb_Executable_get_runtime_dependencies,propex) +gb_Extension_PROPMERGECOMMAND := $(call gb_Executable_get_command,propex) + +gb_Extension_TREEXDEPS := $(call gb_Executable_get_runtime_dependencies,treex) +gb_Extension_TREEXCOMMAND := $(call gb_Executable_get_command,treex) + +gb_Extension_HELPEXDEPS := $(call gb_Executable_get_runtime_dependencies,helpex) +gb_Extension_HELPEXCOMMAND := $(call gb_Executable_get_command,helpex) +gb_Extension_HELPINDEXERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpIndexer) +gb_Extension_HELPINDEXERCOMMAND := $(call gb_Executable_get_command,HelpIndexer) +gb_Extension_HELPLINKERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpLinker) +gb_Extension_HELPLINKERCOMMAND := $(call gb_Executable_get_command,HelpLinker) +# does not contain en-US because it is special cased in gb_Extension_Extension +gb_Extension_TRANS_LANGS := $(filter-out en-US,$(gb_WITH_LANG)) +gb_Extension_ALL_LANGS := en-US $(gb_Extension_TRANS_LANGS) + +# Substitute platform or copy if no platform has been set +define gb_Extension__subst_platform +$(if $(PLATFORM),\ + sed \ + -e 's/@PLATFORM@/$(PLATFORM)/' \ + -e 's/@EXEC_EXTENSION@/$(gb_Executable_EXT)/' \ + -e 's/@SHARED_EXTENSION@/$(gb_Library_DLLEXT)/' \ + $(1) > $(2),\ + cp -f $(1) $(2)) +endef -$(call gb_Deliver_add_deliverable,$(call gb_Extension_get_target,$(1)),$(call gb_ExtensionTarget_get_target,$(1)),$(1)) +$(call gb_Extension_get_workdir,%)/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +# remove extension directory in workdir and oxt file in workdir +$(call gb_Extension_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),OXT,3) + $(call gb_Helper_abbreviate_dirs,\ + rm -f -r $(call gb_Extension_get_workdir,$*) && \ + rm -f $(call gb_Extension__get_preparation_target,$*) \ + $(call gb_Extension_get_target,$*) \ + ) + +# preparation target to delay adding files produced by e.g. UnpackedTarball +$(call gb_Extension__get_preparation_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && touch $@) + +ifeq ($(strip $(gb_WITH_LANG)),) +$(call gb_Extension_get_workdir,%)/description.xml : + $(call gb_Output_announce,$*/description.xml,$(true),CPY,3) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(call gb_Extension_get_workdir,$*) && \ + cp -f $(LOCATION)/description.xml $@) +else +$(call gb_Extension_get_workdir,%)/description.xml : $(gb_Extension_XRMEXDEPS) + $(call gb_Output_announce,$*/description.xml,$(true),XRM,3) + MERGEINPUT=`$(gb_MKTEMP)` && \ + echo $(POFILES) > $${MERGEINPUT} && \ + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(call gb_Extension_get_workdir,$*) && \ + $(gb_Extension_XRMEXCOMMAND) \ + -i $(filter %.xml,$^) \ + -o $@ \ + -m $${MERGEINPUT} \ + -l all) && \ + rm -rf $${MERGEINPUT} + +endif + +# rule to create oxt package in workdir +# --filesync makes sure that all files in the oxt package will be removed that no longer are in $(FILES) +$(call gb_Extension_get_target,%) : \ + $(call gb_Extension_get_workdir,%)/description.xml + $(call gb_Output_announce,$*,$(true),OXT,3) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(call gb_Extension_get_rootdir,$*)/META-INF \ + $(if $(LICENSE),$(call gb_Extension_get_rootdir,$*)/registration) && \ + $(call gb_Extension__subst_platform,$(call gb_Extension_get_workdir,$*)/description.xml,$(call gb_Extension_get_rootdir,$*)/description.xml) && \ + $(call gb_Extension__subst_platform,$(LOCATION)/META-INF/manifest.xml,$(call gb_Extension_get_rootdir,$*)/META-INF/manifest.xml) && \ + $(if $(LICENSE),cp -f $(LICENSE) $(call gb_Extension_get_rootdir,$*)/registration &&) \ + $(if $(and $(gb_Extension_TRANS_LANGS),$(DESCRIPTION)),cp $(foreach lang,$(gb_Extension_TRANS_LANGS),$(call gb_Extension_get_workdir,$*)/description-$(lang).txt) $(call gb_Extension_get_rootdir,$*) &&) \ + cd $(call gb_Extension_get_rootdir,$*) && \ + $(gb_Extension_ZIPCOMMAND) -rX --filesync --must-match \ + $(call gb_Extension_get_target,$*) \ + $(sort $(FILES))) + +# set file list and location of manifest and description files +# register target and clean target +# add deliverable +# add dependency for outdir target to workdir target (pattern rule for delivery is in Package.mk) +# +# gb_Extension_Extension extension srcdir +define gb_Extension_Extension +$(call gb_Extension_get_target,$(1)) : DESCRIPTION := +$(call gb_Extension_get_target,$(1)) : FILES := META-INF description.xml +$(call gb_Extension_get_target,$(1)) : LICENSE := +$(call gb_Extension_get_target,$(1)) : LOCATION := $(SRCDIR)/$(2) +$(call gb_Extension_get_target,$(1)) : PLATFORM := $(PLATFORMID) +$(call gb_Extension_get_workdir,$(1))/description.xml : \ + $(SRCDIR)/$(2)/description.xml +$(call gb_Extension_get_workdir,$(1))/description.xml :| \ + $(call gb_Extension__get_preparation_target,$(1)) + +ifneq ($(strip $(gb_WITH_LANG)),) +$(call gb_Extension_get_target,$(1)) : \ + POFILES := $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) +$(call gb_Extension_get_workdir,$(1))/description.xml : \ + $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) +$(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) : +endif + +$(foreach lang,$(gb_Extension_ALL_LANGS), \ + $(call gb_Extension__compile_help_onelang,$(1),$(lang))) $$(eval $$(call gb_Module_register_target,$(call gb_Extension_get_target,$(1)),$(call gb_Extension_get_clean_target,$(1)))) $(call gb_Helper_make_userfriendly_targets,$(1),Extension) endef +# adding a file creates a dependency to it +# file is copied to $(WORKDIR) +# $(3) is the target of the copied file, and $(4) can be used to override that +# with a different actual file, which is needed in gb_Extension_add_library +# to make it work on Windows where the DLL doesn't have a gbuild target... define gb_Extension_add_file -$(call gb_ExtensionTarget_add_file,$(1),$(2),$(3)) +$(call gb_Extension_get_target,$(1)) : FILES += $(2) +$(call gb_Extension_get_target,$(1)) : $(call gb_Extension_get_rootdir,$(1))/$(2) +$(3) :| $(call gb_Extension__get_preparation_target,$(1)) +$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3) + mkdir -p $$(dir $$@) && \ + cp -f $(if $(4),$(4),$(3)) $$@ endef @@ -35,38 +157,45 @@ endef # without any subpath. If no path is specified, they are added directly # to the root dir of the extension. define gb_Extension_add_files -$(call gb_ExtensionTarget_add_files,$(1),$(2),$(3)) +$(foreach file,$(3),$(call gb_Extension_add_file,$(1),$(if $(strip $(2)),$(strip $(2))/)$(notdir $(file)),$(file))) endef # add a library from the solver; DO NOT use gb_Library_get_target define gb_Extension_add_library -$(call gb_ExtensionTarget_add_library,$(1),$(2)) +$(call gb_Extension_add_file,$(1),$(call gb_Library_get_runtime_filename,$(2)),\ + $(call gb_Library_get_target,$(2)),\ + $(gb_Helper_OUTDIRLIBDIR)/$(call gb_Library_get_runtime_filename,$(2))) endef define gb_Extension_add_libraries -$(call gb_ExtensionTarget_add_libraries,$(1),$(2)) +$(foreach lib,$(2),$(call gb_Extension_add_library,$(1),$(lib))) endef # add an executable from the solver define gb_Extension_add_executable -$(call gb_ExtensionTarget_add_executable,$(1),$(2)) +$(call gb_Extension_add_file,$(1),$(notdir $(call gb_Executable_get_target,$(2))),\ + $(call gb_Executable_get_target,$(2)),\ + $(call gb_Executable_get_target,$(2))) endef define gb_Extension_add_executables -$(call gb_ExtensionTarget_add_executables,$(1),$(2)) +$(foreach exe,$(2),$(call gb_Extension_add_executable,$(1),$(exe))) endef # localize .properties file +# source file is copied to $(WORKDIR) define gb_Extension_localize_properties -$(call gb_ExtensionTarget_localize_properties,$(1),$(2),$(3)) +$(foreach lang,$(gb_Extension_ALL_LANGS),\ + $(call gb_Extension__localize_properties_onelang,$(1),$(subst en_US,$(subst -,_,$(lang)),$(2)),$(3),$(lang))) endef + # add an .xhp help file, to be localized and compiled # $(1): extension identifier # $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) @@ -77,7 +206,9 @@ endef # (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it # is $(2)/$(4)) define gb_Extension_add_helpfile -$(call gb_ExtensionTarget_add_helpfile,$(1),$(2),$(3),$(4)) +$(foreach lang,$(gb_Extension_ALL_LANGS), \ + $(call gb_Extension__localize_helpfile_onelang,$(1),$(2),$(3),$(4),$(lang)) \ + $(call gb_Extension__add_compiled_help_dependency_onelang,$(1),$(lang))) endef @@ -86,7 +217,8 @@ endef # $(2): absolute path prefix of en-US source files without $(3) suffixes # $(3): list of relative paths of .xhp files (see gb_Extension_add_helpfile) define gb_Extension_add_helpfiles -$(call gb_ExtensionTarget_add_helpfiles,$(1),$(2),$(3)) +$(foreach helpfile,$(3), \ + $(call gb_Extension_add_helpfile,$(1),$(2),$(helpfile),)) endef @@ -96,47 +228,239 @@ endef # suffix # $(3): relative path of (target) help.tree file (e.g., # com.sun.wiki-publisher/help.tree) -# $(4): optional relative path of source help.tree file, when it differs from $(3) -# (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it -# is $(2)/$(4)) +# $(4): relative path of source help.tree file +# $(5): relative path of localized xhp files (PlatformID included) define gb_Extension_add_helptreefile -$(call gb_ExtensionTarget_add_helptreefile,$(1),$(2),$(3),$(4),$(5)) +$(foreach lang,$(gb_Extension_ALL_LANGS), \ + $(call gb_Extension__localize_helptreefile_onelang,$(1),$(2),$(3),$(4),$(lang),$(5)) \ + $(call gb_Extension__add_compiled_help_dependency_onelang,$(1),$(lang))) endef +# Use the default description file define gb_Extension_use_default_description -$(call gb_ExtensionTarget_use_default_description,$(1)) +$(call gb_Extension_add_file,$(1),description-en-US.txt,$$(LOCATION)/description-en-US.txt) +$(call gb_Extension_get_target,$(1)) : DESCRIPTION := $(true) +ifneq ($(strip $(gb_WITH_LANG)),) +$(call gb_Extension_get_target,$(1)) : FILES += $(foreach lang,$(gb_Extension_TRANS_LANGS),description-$(lang).txt) +endif endef +# Use the default license file define gb_Extension_use_default_license -$(call gb_ExtensionTarget_use_default_license,$(1)) +$(call gb_Extension_get_target,$(1)) : FILES += registration +$(call gb_Extension_get_target,$(1)) : LICENSE := $(gb_Extension_LICENSEFILE_DEFAULT) +$(call gb_Extension_get_target,$(1)) : $(gb_Extension_LICENSEFILE_DEFAULT) endef define gb_Extension_use_unpacked -$(call gb_ExtensionTarget_use_unpacked,$(1),$(2)) +$(call gb_Extension__get_preparation_target,$(1)) \ + :| $(call gb_UnpackedTarball_get_final_target,$(2)) endef define gb_Extension_use_package -$(call gb_ExtensionTarget_use_package,$(1),$(2)) +$(call gb_Extension__get_preparation_target,$(1)) \ + :| $(call gb_Package_get_target,$(2)) endef define gb_Extension_use_packages -$(call gb_ExtensionTarget_use_packages,$(1),$(2)) +$(foreach package,$(2),$(call gb_Extension_use_package,$(1),$(package))) + +endef + + +define gb_Extension__localize_properties_onelang +$(call gb_Extension_get_target,$(1)) : FILES += $(2) +ifneq ($(filter-out en-US,$(4)),) +ifneq ($(filter-out qtz,$(4)),) +$(call gb_Extension_get_rootdir,$(1))/$(2) : \ + POFILE := $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po +$(call gb_Extension_get_rootdir,$(1))/$(2) : \ + $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po +$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po : +endif +endif +$(call gb_Extension_get_target,$(1)) : $(call gb_Extension_get_rootdir,$(1))/$(2) +$(call gb_Extension_get_rootdir,$(1))/$(2) \ + :| $(call gb_Extension__get_preparation_target,$(1)) +$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3) \ + $(gb_Extension_PROPMERGEDEPS) + $$(call gb_Output_announce,$(2),$(true),PRP,3) + $$(call gb_Helper_abbreviate_dirs, \ + mkdir -p $$(dir $$@) && \ + $(if $(filter qtz,$(4)), \ + $(gb_Extension_PROPMERGECOMMAND) -i $$< -o $$@ -m -l $(4) \ + , \ + $(if $(filter-out en-US,$(4)), \ + MERGEINPUT=`$(gb_MKTEMP)` && \ + echo $$(POFILE) > $$$${MERGEINPUT} && \ + $(gb_Extension_PROPMERGECOMMAND) -i $$< -o $$@ -m $$$${MERGEINPUT} -l $(4) && \ + rm -rf $$$${MERGEINPUT} \ + , \ + cp -f $$< $$@ \ + ) \ + ) \ + ) + +endef + +# localize one .xhp help file for one language; the result is stored as +# help/$(4)/$(3) in the extension's workdir; as a special case, if $(4) is +# "en-US", the source file is just copied, not passed through helpex +# $(1): extension identifier +# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) +# suffix +# $(3): relative path of (target) .xhp file (see +# gb_Extension_add_helpfile) +# $(4): optional relative path of source .xhp file (see +# gb_Extension_add_helpfile) +# $(5): language +define gb_Extension__localize_helpfile_onelang +$(call gb_Extension_get_rootdir,$(1))/help/$(5).done : HELPFILES += $(3) +$(call gb_Extension_get_rootdir,$(1))/help/$(5).done : \ + $(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) +$(call gb_Extension_get_rootdir,$(1))/help/$(5)-xhp.done : \ + $(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) +ifneq ($(filter-out en-US,$(5)),) +ifneq ($(filter-out qtz,$(5)),) +$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \ + POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) +$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \ + $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) +$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) : +endif +endif +$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \ + $(if $(filter-out en-US,$(5)),$(gb_Extension_HELPEXDEPS)) | \ + $(call gb_Extension_get_workdir,$(1))/help/.dir +$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(3) : \ + $(2)/$(or $(4),$(3)) + $$(call gb_Output_announce,$(1) $(3) $(5),$(true),XHP,3) + $$(call gb_Helper_abbreviate_dirs, \ + mkdir -p $$(dir $$@) && \ + $(if $(filter qtz,$(5)), \ + $(gb_Extension_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) -m \ + , \ + $(if $(filter-out en-US,$(5)), \ + MERGEINPUT=`$(gb_MKTEMP)` && \ + echo $$(POFILE) > $$$${MERGEINPUT} && \ + $(gb_Extension_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) \ + -m $$$${MERGEINPUT} && \ + rm -rf $$$${MERGEINPUT} \ + , \ + cp $$< $$@ \ + ) \ + ) && \ + touch $(call gb_Extension_get_rootdir,$(1))/help/$(5)-xhp.done \ + ) + +endef + +# localize one help.tree for one language; the result is stored as +# help/$(4)/$(3) in the extension's workdir; +# $(1): extension identifier +# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) +# suffix +# $(3): relative path of (target) help.tree file (see +# gb_Extension_add_helptreefile) +# $(4): relative path of source help.tree file (see +# gb_Extension_add_helptreefile) +# $(5): language +# $(6): relative path of localized xhp files (PlatformID included) +define gb_Extension__localize_helptreefile_onelang +$(call gb_Extension_get_rootdir,$(1))/help/$(5).done : \ + $(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) +ifneq ($(filter-out en-US,$(5)),) +ifneq ($(filter-out qtz,$(5)),) +$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \ + POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) +$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \ + $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) +$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) : +endif +endif +$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \ + $(call gb_Extension_get_rootdir,$(1))/help/$(5)-xhp.done +$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \ + $(gb_Extension_TREEXDEPS) | \ + $(2)/$(4) +$(call gb_Extension_get_rootdir,$(1))/help/$(5)/$(3) : \ + $(2)/$(or $(4),$(3)) + $$(call gb_Output_announce,$(1) $(3) $(5),$(true),TRE,3) + $$(call gb_Helper_abbreviate_dirs, \ + mkdir -p $$(dir $$@) && \ + $(if $(filter qtz,$(5)), \ + $(gb_Extension_TREEXCOMMAND) -i $$< -o $$@ -l $(5) -m \ + -r $$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(6) \ + , \ + $(if $(filter-out en-US,$(5)), \ + MERGEINPUT=`$(gb_MKTEMP)` && \ + echo $$(POFILE) > $$$${MERGEINPUT} && \ + $(gb_Extension_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \ + -m $$$${MERGEINPUT} \ + -r $$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(6) && \ + rm -rf $$$${MERGEINPUT} \ + , \ + $(gb_Extension_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \ + -r $$(call gb_Extension_get_workdir,$(1))/help/$(5)/$(6) \ + ) \ + ) \ + ) endef -define gb_Extension_add_package_dependency -$$(call gb_Output_error,\ - gb_Extension_add_package_dependency: use gb_Extension_use_package instead.) +# compile help for one language; the result is stored as help/$(3)/ in the +# extension's rootdir and marked for zipping into the .oxt +# $(1): extension identifier +# $(2): language +# Target-specific HELPFILES: list of relative paths of .xhp files (see +# gb_Extension_add_helpfile) +define gb_Extension__compile_help_onelang +$(call gb_Extension_get_rootdir,$(1))/help/$(2).done : \ + $(gb_Extension_HELPINDEXERDEPS) \ + $(gb_Extension_HELPLINKERDEPS) \ + $(OUTDIR_FOR_BUILD)/bin/embed.xsl \ + $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \ + $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl | \ + $(call gb_Extension_get_rootdir,$(1))/help/.dir + $$(call gb_Output_announce,$(1) $(2),$(true),XHC,3) + $$(call gb_Helper_abbreviate_dirs, \ + mkdir -p $$(basename $$@) && \ + $(gb_Extension_HELPLINKERCOMMAND) -mod help \ + -extlangsrc $(call gb_Extension_get_workdir,$(1))/help/$(2) \ + -sty $(OUTDIR_FOR_BUILD)/bin/embed.xsl \ + -extlangdest $$(basename $$@) \ + -idxcaption $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \ + -idxcontent $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl \ + $$(HELPFILES) && \ + (cd $(call gb_Extension_get_workdir,$(1))/help/$(2) && \ + $(gb_Extension_ZIPCOMMAND) -r $$(basename $$@)/help.jar \ + $$(HELPFILES)) && \ + $(gb_Extension_HELPINDEXERCOMMAND) -lang $(2) -mod help \ + -dir $$(basename $$@) && \ + rm -fr $$(basename $$@)/caption $$(basename $$@)/content && \ + touch $$@) + endef -define gb_Extension_add_package_dependencies -$$(call gb_Output_error,\ - gb_Extension_add_package_dependencies: use gb_Extension_use_packages instead.) +# establish the dependency that actually causes inclusion of the compiled help +# into the .oxt, for one language; in principle, this would only need to be done +# once per language iff the extension uses any help -- currently it is done from +# each individual gb_Extension_add_helpfile call (and thus requires $strip +# to remove duplicates from FILES) +# $(1): extension identifier +# $(2): language +define gb_Extension__add_compiled_help_dependency_onelang +$(call gb_Extension_get_target,$(1)) : FILES += help/$(2) +$(call gb_Extension_get_target,$(1)) : \ + $(call gb_Extension_get_rootdir,$(1))/help/$(2).done +$(call gb_Extension_get_rootdir,$(1))/help/$(2).done \ + :| $(call gb_Extension__get_preparation_target,$(1)) + endef # vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/ExtensionTarget.mk b/solenv/gbuild/ExtensionTarget.mk deleted file mode 100644 index b38f3c785d52..000000000000 --- a/solenv/gbuild/ExtensionTarget.mk +++ /dev/null @@ -1,455 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# - -# ExtensionTarget class - -# 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_XRMEXDEPS := $(call gb_Executable_get_runtime_dependencies,xrmex) -gb_ExtensionTarget_XRMEXCOMMAND := $(call gb_Executable_get_command,xrmex) - -gb_ExtensionTarget_PROPMERGEDEPS := $(call gb_Executable_get_runtime_dependencies,propex) -gb_ExtensionTarget_PROPMERGECOMMAND := $(call gb_Executable_get_command,propex) - -gb_ExtensionTarget_TREEXDEPS := $(call gb_Executable_get_runtime_dependencies,treex) -gb_ExtensionTarget_TREEXCOMMAND := $(call gb_Executable_get_command,treex) - -gb_ExtensionTarget_HELPEXDEPS := $(call gb_Executable_get_runtime_dependencies,helpex) -gb_ExtensionTarget_HELPEXCOMMAND := $(call gb_Executable_get_command,helpex) -gb_ExtensionTarget_HELPINDEXERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpIndexer) -gb_ExtensionTarget_HELPINDEXERCOMMAND := $(call gb_Executable_get_command,HelpIndexer) -gb_ExtensionTarget_HELPLINKERDEPS := $(call gb_Executable_get_runtime_dependencies,HelpLinker) -gb_ExtensionTarget_HELPLINKERCOMMAND := $(call gb_Executable_get_command,HelpLinker) -# does not contain en-US because it is special cased in gb_ExtensionTarget_ExtensionTarget -gb_ExtensionTarget_TRANS_LANGS := $(filter-out en-US,$(gb_WITH_LANG)) -gb_ExtensionTarget_ALL_LANGS := en-US $(gb_ExtensionTarget_TRANS_LANGS) - -# Substitute platform or copy if no platform has been set -define gb_ExtensionTarget__subst_platform -$(if $(PLATFORM),\ - sed \ - -e 's/@PLATFORM@/$(PLATFORM)/' \ - -e 's/@EXEC_EXTENSION@/$(gb_Executable_EXT)/' \ - -e 's/@SHARED_EXTENSION@/$(gb_Library_DLLEXT)/' \ - $(1) > $(2),\ - cp -f $(1) $(2)) -endef - -$(call gb_ExtensionTarget_get_workdir,%)/.dir : - $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) - -# remove extension directory in workdir and oxt file in workdir -$(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_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) - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(call gb_ExtensionTarget_get_workdir,$*) && \ - cp -f $(LOCATION)/description.xml $@) -else -$(call gb_ExtensionTarget_get_workdir,%)/description.xml : $(gb_ExtensionTarget_XRMEXDEPS) - $(call gb_Output_announce,$*/description.xml,$(true),XRM,3) - MERGEINPUT=`$(gb_MKTEMP)` && \ - echo $(POFILES) > $${MERGEINPUT} && \ - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(call gb_ExtensionTarget_get_workdir,$*) && \ - $(gb_ExtensionTarget_XRMEXCOMMAND) \ - -i $(filter %.xml,$^) \ - -o $@ \ - -m $${MERGEINPUT} \ - -l all) && \ - rm -rf $${MERGEINPUT} - -endif - -# rule to create oxt package in workdir -# --filesync makes sure that all files in the oxt package will be removed that no longer are in $(FILES) -$(call gb_ExtensionTarget_get_target,%) : \ - $(call gb_ExtensionTarget_get_workdir,%)/description.xml - $(call gb_Output_announce,$*,$(true),OXT,3) - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(call gb_ExtensionTarget_get_rootdir,$*)/META-INF \ - $(if $(LICENSE),$(call gb_ExtensionTarget_get_rootdir,$*)/registration) && \ - $(call gb_ExtensionTarget__subst_platform,$(call gb_ExtensionTarget_get_workdir,$*)/description.xml,$(call gb_ExtensionTarget_get_rootdir,$*)/description.xml) && \ - $(call gb_ExtensionTarget__subst_platform,$(LOCATION)/META-INF/manifest.xml,$(call gb_ExtensionTarget_get_rootdir,$*)/META-INF/manifest.xml) && \ - $(if $(LICENSE),cp -f $(LICENSE) $(call gb_ExtensionTarget_get_rootdir,$*)/registration &&) \ - $(if $(and $(gb_ExtensionTarget_TRANS_LANGS),$(DESCRIPTION)),cp $(foreach lang,$(gb_ExtensionTarget_TRANS_LANGS),$(call gb_ExtensionTarget_get_workdir,$*)/description-$(lang).txt) $(call gb_ExtensionTarget_get_rootdir,$*) &&) \ - cd $(call gb_ExtensionTarget_get_rootdir,$*) && \ - $(gb_ExtensionTarget_ZIPCOMMAND) -rX --filesync --must-match \ - $(call gb_ExtensionTarget_get_target,$*) \ - $(sort $(FILES))) - -# set file list and location of manifest and description files -# register target and clean target -# add deliverable -# add dependency for outdir target to workdir target (pattern rule for delivery is in Package.mk) -# -# gb_ExtensionTarget_ExtensionTarget extension srcdir -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)) : PLATFORM := $(PLATFORMID) -$(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)) : \ - POFILES := $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) -$(call gb_ExtensionTarget_get_workdir,$(1))/description.xml : \ - $(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) -$(foreach lang,$(gb_TRANS_LANGS),$(gb_POLOCATION)/$(lang)/$(2).po) : -endif - -$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \ - $(call gb_ExtensionTarget__compile_help_onelang,$(1),$(lang))) -endef - -# Use the default license file -define gb_ExtensionTarget_use_default_license -$(call gb_ExtensionTarget_get_target,$(1)) : FILES += registration -$(call gb_ExtensionTarget_get_target,$(1)) : LICENSE := $(gb_ExtensionTarget_LICENSEFILE_DEFAULT) -$(call gb_ExtensionTarget_get_target,$(1)) : $(gb_ExtensionTarget_LICENSEFILE_DEFAULT) - -endef - -# Use the default description file -define gb_ExtensionTarget_use_default_description -$(call gb_ExtensionTarget_add_file,$(1),description-en-US.txt,$$(LOCATION)/description-en-US.txt) -$(call gb_ExtensionTarget_get_target,$(1)) : DESCRIPTION := $(true) -ifneq ($(strip $(gb_WITH_LANG)),) -$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(foreach lang,$(gb_ExtensionTarget_TRANS_LANGS),description-$(lang).txt) -endif - -endef - -# adding a file creates a dependency to it -# file is copied to $(WORKDIR) -# $(3) is the target of the copied file, and $(4) can be used to override that -# with a different actual file, which is needed in gb_ExtensionTarget_add_library -# to make it work on Windows where the DLL doesn't have a gbuild target... -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)) $$@ - -endef - -# Add several files at once -# -# This function avoids the need to specify each file's name twice. The -# files are added directly under specified path in the extension, -# without any subpath. If no path is specified, they are added directly -# to the root dir of the extension. -define gb_ExtensionTarget_add_files -$(foreach file,$(3),$(call gb_ExtensionTarget_add_file,$(1),$(if $(strip $(2)),$(strip $(2))/)$(notdir $(file)),$(file))) - -endef - -# add a library from the solver; DO NOT use gb_Library_get_target -define gb_ExtensionTarget_add_library -$(call gb_ExtensionTarget_add_file,$(1),$(call gb_Library_get_runtime_filename,$(2)),\ - $(call gb_Library_get_target,$(2)),\ - $(gb_Helper_OUTDIRLIBDIR)/$(call gb_Library_get_runtime_filename,$(2))) -endef - -define gb_ExtensionTarget_add_libraries -$(foreach lib,$(2),$(call gb_ExtensionTarget_add_library,$(1),$(lib))) -endef - -# add an executable from the solver -define gb_ExtensionTarget_add_executable -$(call gb_ExtensionTarget_add_file,$(1),$(notdir $(call gb_Executable_get_target,$(2))),\ - $(call gb_Executable_get_target,$(2)),\ - $(call gb_Executable_get_target,$(2))) -endef - -define gb_ExtensionTarget_add_executables -$(foreach exe,$(2),$(call gb_ExtensionTarget_add_executable,$(1),$(exe))) -endef - -# localize .properties file -# source file is copied to $(WORKDIR) -define gb_ExtensionTarget_localize_properties -$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS),\ - $(call gb_ExtensionTarget_localize_properties_onelang,$(1),$(subst en_US,$(subst -,_,$(lang)),$(2)),$(3),$(lang))) -endef - -define gb_ExtensionTarget_localize_properties_onelang -$(call gb_ExtensionTarget_get_target,$(1)) : FILES += $(2) -ifneq ($(filter-out en-US,$(4)),) -ifneq ($(filter-out qtz,$(4)),) -$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \ - POFILE := $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po -$(call gb_ExtensionTarget_get_rootdir,$(1))/$(2) : \ - $(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po -$(gb_POLOCATION)/$(or $(5),$(4))/$(patsubst /%/,%,$(subst $(SRCDIR),,$(dir $(3)))).po : -endif -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_PROPMERGEDEPS) - $$(call gb_Output_announce,$(2),$(true),PRP,3) - $$(call gb_Helper_abbreviate_dirs, \ - mkdir -p $$(dir $$@) && \ - $(if $(filter qtz,$(4)), \ - $(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m -l $(4) \ - , \ - $(if $(filter-out en-US,$(4)), \ - MERGEINPUT=`$(gb_MKTEMP)` && \ - echo $$(POFILE) > $$$${MERGEINPUT} && \ - $(gb_ExtensionTarget_PROPMERGECOMMAND) -i $$< -o $$@ -m $$$${MERGEINPUT} -l $(4) && \ - rm -rf $$$${MERGEINPUT} \ - , \ - cp -f $$< $$@ \ - ) \ - ) \ - ) - -endef - -# add an .xhp help file, to be localized and compiled -# $(1): extension identifier -# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) -# suffix -# $(3): relative path of (target) .xhp file (e.g., -# com.sun.wiki-publisher/wiki.xhp) -# $(4): optional relative path of source .xhp file, when it differs from $(3) -# (i.e., if $(4) is empty the en-US source file is $(2)/$(3), otherwise it -# is $(2)/$(4)) -define gb_ExtensionTarget_add_helpfile -$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \ - $(call gb_ExtensionTarget__localize_helpfile_onelang,$(1),$(2),$(3),$(4),$(lang)) \ - $(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang))) -endef - -# add a help.tree file, to be localized and compiled -# $(1): extension identifier -# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) -# suffix -# $(3): relative path of (target) help.tree file (e.g., -# com.sun.wiki-publisher/help.tree) -# $(4): relative path of source help.tree file -# $(5): relative path of localized xhp files (PlatformID included) -define gb_ExtensionTarget_add_helptreefile -$(foreach lang,$(gb_ExtensionTarget_ALL_LANGS), \ - $(call gb_ExtensionTarget__localize_helptreefile_onelang,$(1),$(2),$(3),$(4),$(lang),$(5)) \ - $(call gb_ExtensionTarget__add_compiled_help_dependency_onelang,$(1),$(lang))) -endef - -# add a list of .xhp help files, to be localized and compiled -# $(1): extension identifier -# $(2): absolute path prefix of en-US source files without $(3) suffixes -# $(3): list of relative paths of .xhp files (see -# gb_ExtensionTarget_add_helpfile) -define gb_ExtensionTarget_add_helpfiles -$(foreach helpfile,$(3), \ - $(call gb_ExtensionTarget_add_helpfile,$(1),$(2),$(helpfile),)) -endef - -# localize one .xhp help file for one language; the result is stored as -# help/$(4)/$(3) in the extension's workdir; as a special case, if $(4) is -# "en-US", the source file is just copied, not passed through helpex -# $(1): extension identifier -# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) -# suffix -# $(3): relative path of (target) .xhp file (see -# gb_ExtensionTarget_add_helpfile) -# $(4): optional relative path of source .xhp file (see -# gb_ExtensionTarget_add_helpfile) -# $(5): language -define gb_ExtensionTarget__localize_helpfile_onelang -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : HELPFILES += $(3) -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \ - $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done : \ - $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) -ifneq ($(filter-out en-US,$(5)),) -ifneq ($(filter-out qtz,$(5)),) -$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \ - POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) -$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \ - $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) -$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(or $(4),$(3))))) : -endif -endif -$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \ - $(if $(filter-out en-US,$(5)),$(gb_ExtensionTarget_HELPEXDEPS)) | \ - $(call gb_ExtensionTarget_get_workdir,$(1))/help/.dir -$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(3) : \ - $(2)/$(or $(4),$(3)) - $$(call gb_Output_announce,$(1) $(3) $(5),$(true),XHP,3) - $$(call gb_Helper_abbreviate_dirs, \ - mkdir -p $$(dir $$@) && \ - $(if $(filter qtz,$(5)), \ - $(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) -m \ - , \ - $(if $(filter-out en-US,$(5)), \ - MERGEINPUT=`$(gb_MKTEMP)` && \ - echo $$(POFILE) > $$$${MERGEINPUT} && \ - $(gb_ExtensionTarget_HELPEXCOMMAND) -i $$< -o $$@ -l $(5) \ - -m $$$${MERGEINPUT} && \ - rm -rf $$$${MERGEINPUT} \ - , \ - cp $$< $$@ \ - ) \ - ) && \ - touch $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done \ - ) - -endef - - -# localize one help.tree for one language; the result is stored as -# help/$(4)/$(3) in the extension's workdir; -# $(1): extension identifier -# $(2): absolute path prefix of en-US source file without $(3) (resp. $(4)) -# suffix -# $(3): relative path of (target) help.tree file (see -# gb_ExtensionTarget_add_helptreefile) -# $(4): relative path of source help.tree file (see -# gb_ExtensionTarget_add_helptreefile) -# $(5): language -# $(6): relative path of localized xhp files (PlatformID included) -define gb_ExtensionTarget__localize_helptreefile_onelang -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5).done : \ - $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) -ifneq ($(filter-out en-US,$(5)),) -ifneq ($(filter-out qtz,$(5)),) -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ - POFILE := $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ - $(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) -$(gb_POLOCATION)/$(5)$(subst $(SRCDIR),,$(2))$(patsubst %/,/%.po,$(patsubst ./,.po,$(dir $(4)))) : -endif -endif -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ - $(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)-xhp.done -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ - $(gb_ExtensionTarget_TREEXDEPS) | \ - $(2)/$(4) -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(5)/$(3) : \ - $(2)/$(or $(4),$(3)) - $$(call gb_Output_announce,$(1) $(3) $(5),$(true),TRE,3) - $$(call gb_Helper_abbreviate_dirs, \ - mkdir -p $$(dir $$@) && \ - $(if $(filter qtz,$(5)), \ - $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) -m \ - -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) \ - , \ - $(if $(filter-out en-US,$(5)), \ - MERGEINPUT=`$(gb_MKTEMP)` && \ - echo $$(POFILE) > $$$${MERGEINPUT} && \ - $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \ - -m $$$${MERGEINPUT} \ - -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) && \ - rm -rf $$$${MERGEINPUT} \ - , \ - $(gb_ExtensionTarget_TREEXCOMMAND) -i $$< -o $$@ -l $(5) \ - -r $$(call gb_ExtensionTarget_get_workdir,$(1))/help/$(5)/$(6) \ - ) \ - ) \ - ) - -endef - -# compile help for one language; the result is stored as help/$(3)/ in the -# extension's rootdir and marked for zipping into the .oxt -# $(1): extension identifier -# $(2): language -# Target-specific HELPFILES: list of relative paths of .xhp files (see -# gb_ExtensionTarget_add_helpfile) -define gb_ExtensionTarget__compile_help_onelang -$(call gb_ExtensionTarget_get_rootdir,$(1))/help/$(2).done : \ - $(gb_ExtensionTarget_HELPINDEXERDEPS) \ - $(gb_ExtensionTarget_HELPLINKERDEPS) \ - $(OUTDIR_FOR_BUILD)/bin/embed.xsl \ - $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \ - $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl | \ - $(call gb_ExtensionTarget_get_rootdir,$(1))/help/.dir - $$(call gb_Output_announce,$(1) $(2),$(true),XHC,3) - $$(call gb_Helper_abbreviate_dirs, \ - mkdir -p $$(basename $$@) && \ - $(gb_ExtensionTarget_HELPLINKERCOMMAND) -mod help \ - -extlangsrc $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(2) \ - -sty $(OUTDIR_FOR_BUILD)/bin/embed.xsl \ - -extlangdest $$(basename $$@) \ - -idxcaption $(OUTDIR_FOR_BUILD)/bin/idxcaption.xsl \ - -idxcontent $(OUTDIR_FOR_BUILD)/bin/idxcontent.xsl \ - $$(HELPFILES) && \ - (cd $(call gb_ExtensionTarget_get_workdir,$(1))/help/$(2) && \ - $(gb_ExtensionTarget_ZIPCOMMAND) -r $$(basename $$@)/help.jar \ - $$(HELPFILES)) && \ - $(gb_ExtensionTarget_HELPINDEXERCOMMAND) -lang $(2) -mod help \ - -dir $$(basename $$@) && \ - rm -fr $$(basename $$@)/caption $$(basename $$@)/content && \ - touch $$@) - -endef - -# establish the dependency that actually causes inclusion of the compiled help -# into the .oxt, for one language; in principle, this would only need to be done -# once per language iff the extension uses any help -- currently it is done from -# each individual gb_ExtensionTarget_add_helpfile call (and thus requires $strip -# to remove duplicates from FILES) -# $(1): extension identifier -# $(2): language -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_preparation_target,$(1)) \ - :| $(call gb_Package_get_target,$(2)) - -endef - -define gb_ExtensionTarget_use_packages -$(foreach package,$(2),$(call gb_ExtensionTarget_use_package,$(1),$(package))) - -endef - -# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index cf9318fe5fc6..7a0b2b86055c 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -24,7 +24,6 @@ gb_CliNativeLibrary_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliNativeLib gb_CliUnoApi_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliUnoApi_EXT) gb_Executable_get_target = $(OUTDIR)/bin/$(1)$(gb_Executable_EXT) gb_Executable_get_target_for_build = $(OUTDIR_FOR_BUILD)/bin/$(1)$(gb_Executable_EXT_for_build) -gb_Extension_get_target = $(OUTDIR)/bin/$(1).oxt gb_Pagein_get_outdir_target = $(OUTDIR)/bin/pagein-$(1) gb_PackagePart_get_destinations = \ $(INSTDIR) \ @@ -96,9 +95,9 @@ gb_GenCxxObject_get_target = $(WORKDIR)/GenCxxObject/$(1).o gb_Executable_get_external_headers_target = $(WORKDIR)/ExternalHeaders/Executable/$(1) gb_Executable_get_headers_target = $(WORKDIR)/Headers/Executable/$(1) gb_Executable_get_runtime_target = $(WORKDIR_FOR_BUILD)/Executable/$(1).run -gb_ExtensionTarget_get_target = $(WORKDIR)/ExtensionTarget/$(1).oxt -gb_ExtensionTarget_get_rootdir = $(WORKDIR)/ExtensionTarget/$(1)/root -gb_ExtensionTarget_get_workdir = $(WORKDIR)/ExtensionTarget/$(1) +gb_Extension_get_target = $(WORKDIR)/Extension/$(1).oxt +gb_Extension_get_rootdir = $(WORKDIR)/Extension/$(1)/root +gb_Extension_get_workdir = $(WORKDIR)/Extension/$(1) gb_ExternalPackage_get_target = $(WORKDIR)/ExternalPackage/$(1) gb_ExternalProject_get_statedir = $(WORKDIR)/ExternalProject/$(1) gb_ExternalProject_get_preparation_target = $(WORKDIR)/ExternalProject/$(1).prepare @@ -259,7 +258,7 @@ $(eval $(call gb_Helper_make_clean_targets,\ DescriptionTranslateTarget \ Dictionary \ ExternalPackage \ - ExtensionTarget \ + Extension \ Gallery \ GeneratedPackage \ HelpTarget \ @@ -328,7 +327,6 @@ $(eval $(call gb_Helper_make_outdir_clean_targets,\ CliNativeLibrary \ CliUnoApi \ Executable \ - Extension \ InstallScript \ Library \ StaticLibrary \ diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 34adec944605..4b65f0ecee83 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -331,9 +331,8 @@ include $(foreach class, \ Configuration \ HelpTarget \ AllLangHelp \ - ExtensionTarget \ - Dictionary \ Extension \ + Dictionary \ InstallModuleTarget \ InstallModule \ InstallScript \ diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk index e81026e9bc28..46d73fd518ff 100644 --- a/solenv/gbuild/platform/IOS_ARM_GCC.mk +++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk @@ -254,9 +254,9 @@ gb_InstallScript_EXT := .ins gb_CliAssemblyTarget_POLICYEXT := gb_CliAssemblyTarget_get_dll := -# ExtensionTarget class +# Extension class -gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE +gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE # UnpackedTarget class diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk index 77632c5a6f44..7dde27153906 100644 --- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk +++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk @@ -388,9 +388,9 @@ gb_InstallScript_EXT := .inf gb_CliAssemblyTarget_POLICYEXT := gb_CliAssemblyTarget_get_dll := -# ExtensionTarget class +# Extension class -gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt +gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt # UnpackedTarget class diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk index c26582f56011..c08349d83c33 100644 --- a/solenv/gbuild/platform/com_MSC_class.mk +++ b/solenv/gbuild/platform/com_MSC_class.mk @@ -563,9 +563,9 @@ gb_InstallScript_EXT := .inf gb_CliAssemblyTarget_POLICYEXT := $(gb_Library_DLLEXT) gb_CliAssemblyTarget_get_dll = $(OUTDIR)/bin/$(1)$(gb_CliAssemblyTarget_POLICYEXT) -# ExtensionTarget class +# Extension class -gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt +gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt # UnpackedTarget class diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index 38aa26872348..a12644e5205c 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -356,9 +356,9 @@ gb_InstallScript_EXT := .ins gb_CliAssemblyTarget_POLICYEXT := gb_CliAssemblyTarget_get_dll := -# ExtensionTarget class +# Extension class -gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE +gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE # UnpackedTarget class diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk index ed0dd5cf08e8..2c0a836a48cb 100644 --- a/solenv/gbuild/platform/solaris.mk +++ b/solenv/gbuild/platform/solaris.mk @@ -396,9 +396,9 @@ gb_InstallScript_EXT := .ins gb_CliAssemblyTarget_POLICYEXT := gb_CliAssemblyTarget_get_dll := -# ExtensionTarget class +# Extension class -gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE +gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE # UnpackedTarget class diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index e68371d9976a..c15f0fa4a671 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -395,9 +395,9 @@ gb_InstallScript_EXT := .ins gb_CliAssemblyTarget_POLICYEXT := gb_CliAssemblyTarget_get_dll := -# ExtensionTarget class +# Extension class -gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE +gb_Extension_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE # UnpackedTarget class |