This is an automated email from the ASF dual-hosted git repository. damjan pushed a commit to branch scons-build in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 1cf963eecdba91abc87d79065edcb42f6434ad27 Author: Damjan Jovanovic <[email protected]> AuthorDate: Sat Feb 8 12:04:38 2020 +0200 Add some documentation --- .../gotoSCons/targets/AllLangResTarget.java | 162 +++++++++++++++++++++ 1 file changed, 162 insertions(+) diff --git a/gotoSCons/src/main/java/org/apache/opeonoffice/gotoSCons/targets/AllLangResTarget.java b/gotoSCons/src/main/java/org/apache/opeonoffice/gotoSCons/targets/AllLangResTarget.java index 22629ad..3ce18d9 100644 --- a/gotoSCons/src/main/java/org/apache/opeonoffice/gotoSCons/targets/AllLangResTarget.java +++ b/gotoSCons/src/main/java/org/apache/opeonoffice/gotoSCons/targets/AllLangResTarget.java @@ -31,6 +31,168 @@ import org.apache.openoffice.gotoSCons.raw.ListNode; import org.apache.openoffice.gotoSCons.raw.Node; import org.apache.openoffice.gotoSCons.raw.ValueNode; +/** + * gbuild's main/solenv/gbuild/AllLangResTarget.mk contains these 5 classes: + * 1. SrsPartMergeTarget (used in 2 modules) + * 2. SrsPartTarget (used in 2 modules) + * 3. SrsTarget (used in many modules) + * 4. ResTarget (unused in modules) + * 5. AllLangResTarget (used in many modules) + * + * + * ==================== + * 5. AllLangResTarget + * ==================== + * This is just there to create a number of ResTarget objects, + * one per language, and forward various calls to each one + * of those (eg. add_srs() is called on every lang's ResTarget). + * + * (extensions/pre_SharedLangList.mk) + * if WITH_LANG == 'All': + * gb_WITH_LANG = $(completelangiso) from $(SOLARENV)/inc/langlist.mk + * else: + * gb_WITH_LANG = $(WITH_LANG) + * gb_AllLangResTarget_LANGS = unique union of (en-US, gb_WITH_LANG) + * + * # UNUSED + * #def gb_AllLangResTarget_set_langs(langs): + * # gb_AllLangResTarget_LANGS = langs + * + * def gb_AllLangResTarget_get_target(name): + * return $(WORKDIR)/AllLangRes/$(name) + * + * def gb_AllLangResTarget_AllLangResTarget(name): + * for lang in gb_AllLangResTarget_LANGS: + * gb_ResTarget_ResTarget($name$lang, name, lang) + * register the target gb_AllLangResTarget_get_target(name) + * + * def gb_AllLangResTarget_add_srs(name, srs): + * for s in srs: + * gb_AllLangResTarget_add_one_srs(name, s) + * + * def gb_AllLangResTarget_add_one_srs(name, srs): + * for lang in gb_AllLangResTarget_LANGS: + * gb_ResTarget_add_one_srs($(name)$(lang), srs) + * + * def gb_AllLangResTarget_set_reslocation(name, location): + * for lang in gb_AllLangResTarget_LANGS: + * gb_ResTarget_set_reslocation($(name)$(lang), location) + * + * def gb_AllLangResTarget_set_imagelocations(name, location): + * for lang in gb_AllLangResTarget_LANGS: + * gb_ResTarget_set_imagelocations($(name)$(lang), location) + * + * ============================ + * 4. ResTarget + * ============================ + * Generates $(WORKDIR)/ResTarget/$(resName).res + * from a number of .srs + * + * def gb_ResTarget_get_target(resName): + * return $(WORKDIR)/ResTarget/$(resName).res + * + * def gb_ResTarget_ResTarget(resName, allLangResName, lang): + * on gb_ResTarget_get_target(resName), set: + * RESLOCATION = allLangResName + * LIBRARY = allLangResName + * LANGUAGE = lang + * add dependencies and deliverables + * + * def gb_ResTarget_add_file(resName, filename): + * gb_ResTarget_get_target(resName) depends on filename + * + * def gb_ResTarget_add_one_srs(resName, srsName): + * gb_ResTarget_add_file(resName, gb_SrsTarget_get_target(srsName)) + * + * def gb_ResTarget_set_reslocation(resName, location): + * on gb_ResTarget_get_target(resName), set RESLOCATION=location + * + * def gb_ResTarget_set_imagelocation(resName, location): + * on gb_ResTarget_get_target(resName), set IMAGELOCATIONS=location + * + * A SUPER LONG COMPLEX RULE TO GENERATE ANY gb_ResTarget_get_target() + * FROM ITS DEPENDENCIES USING rsc + * + * ============================= + * 3. SrsTarget + * ============================= + * + * + * def gb_SrsTarget_get_target(srsName): + * return $(WORKDIR)/SrsTarget/$(srsName).srs + * + * gb_SrsTarget_DEFAULTDEFS = gb_GLOBALDEFS + * + * def gb_SrsTarget_SrsTarget(srsName): + * on gb_SrsTarget_get_target(srsName), set: + * DEFS = $(gb_SrsTarget_DEFAULTDEFS) + * INCLUDE = $(SOLARINC) + * PARTS = + * some dependencies + * + * def gb_SrsTarget_set_include(srsName, includes): + * on gb_SrsTarget_get_target(srsName) set INCLUDE = includes + * + * def gb_SrsTarget_add_file(srsName, file): + * gb_SrsPartTarget_SrsPartTarget(file) + * on gb_SrsPartTarget_get_target(file), add file to PARTS, make us depend on it + * dependencies + * + * # UNUSED + * # def gb_SrsTarget_set_defs + * + * RULE to generate gb_SrsTarget_get_target(): + * cat together dependencies (file contents) into target file + * + * ==================================== + * 2. SrsPartTarget + * ==================================== + * + * def gb_SrsPartTarget_get_target(srsPartName): + * return $(WORKDIR)/SrsPartTarget/$(srsPartName) + * + * def gb_SrsPartTarget_SrsPartTarget(srsPartName): + * if $(gb_WITH_LANG) is empty: + * on gb_SrsPartTarget_get_target(srsPartName), set MERGEDFILE= + * else: + * on gb_SrsPartTarget_get_target(srsPartName), set: + * MERGEDFILE = gb_SrsPartMergeTarget_get_target(srsPartName) + * depend on gb_SrsPartMergeTarget_get_target(srsPartName) + * on gb_SrsPartMergeTarget_get_target(srsPartName): + * set SDF = $(realpath $(gb_SrsPartMergeTarget_SDFLOCATION)/$(dir $(1))localize.sdf) + * make gb_SrsPartMergeTarget_get_target(srsPartName) depend on that location + * + * RULE to generate gb_SrsPartTarget_get_target() from dependencies or MERGEFILE + * which doesn't make sense as dependencies aren't added when MERGEFILE is unset + * Perhaps gb_Helper_MISCDUMMY comes into play. + * Unless $(eval $(call gb_SrsPartTarget__rules,$(repo)) + * $$(call gb_SrsPartTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartTarget_RSCTARGET) + * So it depends on everything in repo? + * + * ===================== + * 1. SrsPartMergeTarget + * ===================== + * + * gb_SrsPartMergeTarget_get_target = $(WORKDIR)/SrsPartMergeTarget/$(1) + * gb_SrsPartMergeTarget_SDFLOCATION := $(LOCDIR)/l10n/$(INPATH)/misc/sdf + * + * runs rules on each repo + * + * def gb_SrsPartMergeTarget__rules(): + * if SDF is set: + * gb_SrsPartMergeTarget__command() + * else: + * copy sources to target + * + * def gb_SrsPartMergeTarget__command(): + * calls gb_SrsPartMergeTarget_TRANSEXCOMMAND on various args + * + * + * + * + * + * NOTE: SCons' CPPSUFFIXES could scan .src files for dependencies + */ public class AllLangResTarget extends BaseTarget { private File filename; private String name;
