You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by da...@apache.org on 2020/02/08 12:23:07 UTC

[openoffice] branch scons-build updated (ab2b352 -> e3440cb)

This is an automated email from the ASF dual-hosted git repository.

damjan pushed a change to branch scons-build
in repository https://gitbox.apache.org/repos/asf/openoffice.git.


    from ab2b352  Add linker version script support.
     new bf32431  Implement "no exception objects". Fix site_init.py
     new ead77f0  Fix version script path.
     new 1cf963e  Add some documentation
     new e3440cb  Fix $ORIGIN escaping.

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../openoffice/gotoSCons/SConsConverter.java       |  31 +++-
 .../gotoSCons/targets/AllLangResTarget.java        | 162 +++++++++++++++++++++
 main/site_scons/platform/freebsd.py                |  10 +-
 main/site_scons/site_init.py                       |   1 -
 4 files changed, 193 insertions(+), 11 deletions(-)


[openoffice] 04/04: Fix $ORIGIN escaping.

Posted by da...@apache.org.
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 e3440cb4edd4c6fe74e05bdfa9ee2978a8e174d6
Author: Damjan Jovanovic <da...@apache.org>
AuthorDate: Sat Feb 8 13:25:39 2020 +0200

    Fix $ORIGIN escaping.
    
    Patch by: me
---
 main/site_scons/platform/freebsd.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/main/site_scons/platform/freebsd.py b/main/site_scons/platform/freebsd.py
index c4558ed..8f0f188 100644
--- a/main/site_scons/platform/freebsd.py
+++ b/main/site_scons/platform/freebsd.py
@@ -42,12 +42,12 @@ class FreeBSD(aooplatform.Platform):
         self.libraryGroupLayers['UNOLIBS_OOO'] = 'OOO'
         self.libraryGroupLayers['UNOVERLIBS'] = 'URELIB'
         self.layerRPaths = {}
-        self.layerRPaths['URELIB'] = '$ORIGIN'
-        self.layerRPaths['UREBIN'] = '$ORIGIN/../lib:$ORIGIN'
-        self.layerRPaths['OOO'] = '$ORIGIN:$ORIGIN/../ure-link/lib'
-        self.layerRPaths['BRAND'] = '$ORIGIN:$ORIGIN/../basis-link/program:$ORIGIN/../basis-link/ure-link/lib'
+        self.layerRPaths['URELIB'] = '\$$ORIGIN'
+        self.layerRPaths['UREBIN'] = '\$$ORIGIN/../lib:\$$ORIGIN'
+        self.layerRPaths['OOO'] = '\$$ORIGIN:\$$ORIGIN/../ure-link/lib'
+        self.layerRPaths['BRAND'] = '\$$ORIGIN:\$$ORIGIN/../basis-link/program:\$$ORIGIN/../basis-link/ure-link/lib'
         self.layerRPaths['SDKBIN'] = '$ORIGIN/../../ure-link/lib'
-        self.layerRPaths['NONEBIN'] = '$ORIGIN/../lib:$ORIGIN'
+        self.layerRPaths['NONEBIN'] = '\$$ORIGIN/../lib:\$$ORIGIN'
         self.layerComponentPrefixes = {}
         self.layerComponentPrefixes['OOO'] = 'vnd.sun.star.expand:\\$$OOO_BASE_DIR/program/'
         self.layerComponentPrefixes['URELIB'] = 'vnd.sun.star.expand:\\$$URE_INTERNAL_LIB_DIR/'


[openoffice] 03/04: Add some documentation

Posted by da...@apache.org.
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 <da...@apache.org>
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;


[openoffice] 02/04: Fix version script path.

Posted by da...@apache.org.
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 ead77f05278d696109d843e1e4da6d988cd0575a
Author: Damjan Jovanovic <da...@apache.org>
AuthorDate: Sat Feb 8 11:59:39 2020 +0200

    Fix version script path.
    
    Patch by: me
---
 .../java/org/apache/openoffice/gotoSCons/SConsConverter.java     | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java b/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java
index 147b328..c3f1d50 100644
--- a/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java
+++ b/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java
@@ -111,13 +111,14 @@ public class SConsConverter {
         
         String versionScript = library.getVersionScript();
         if (versionScript != null) {
-            int firstSlash = versionScript.indexOf('/');
-            if (firstSlash < 0) {
-                throw new Exception("Invalid filename " + versionScript);
+            if (versionScript.startsWith("$(SRCDIR)/")) {
+                int firstSlash = versionScript.indexOf('/');
+                int secondSlash = versionScript.indexOf('/', firstSlash + 1);
+                versionScript = versionScript.substring(secondSlash + 1);
             }
 
             out.println(String.format("%s.SetVersionScript('%s')",
-                    library.getName(), versionScript.substring(firstSlash + 1)));
+                    library.getName(), versionScript));
         }
 
         out.println(String.format("%s.InstallTo('${OUTDIR}/lib')", library.getName()));


[openoffice] 01/04: Implement "no exception objects". Fix site_init.py

Posted by da...@apache.org.
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 bf3243109034a921e32a6e21d8db0a0f65aa24c2
Author: Damjan Jovanovic <da...@apache.org>
AuthorDate: Sat Feb 8 11:47:38 2020 +0200

    Implement "no exception objects".
    Fix site_init.py
    
    Patch by: me
---
 .../openoffice/gotoSCons/SConsConverter.java       | 22 +++++++++++++++++++++-
 main/site_scons/site_init.py                       |  1 -
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java b/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java
index 914cb55..147b328 100644
--- a/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java
+++ b/gotoSCons/src/main/java/org/apache/openoffice/gotoSCons/SConsConverter.java
@@ -174,7 +174,7 @@ public class SConsConverter {
     
     private String convertObjects(BaseBinary binary) throws Exception {
         String objectsVariable = binary.getName() + "Objects";
-        if (binary.getExceptionObjects().isEmpty()) {
+        if (binary.getExceptionObjects().isEmpty() && binary.getNoexceptionObjects().isEmpty()) {
             throw new Exception("How can a binary have no source files?");
         }
         out.println(objectsVariable + " = AOOSharedObjects()");
@@ -255,6 +255,26 @@ public class SConsConverter {
             out.println();
             out.println("])");
         }
+
+        if (!binary.getNoexceptionObjects().isEmpty()) {
+            out.println(objectsVariable + ".AddCxxNoExceptionSources([");
+            boolean first = true;
+            for (String noExceptionObject : binary.getNoexceptionObjects()) {
+                if (!first) {
+                    out.println(",");
+                }
+                // in: fileaccess/source/FileAccess
+                // out: source/FileAccess.cxx
+                int firstSlash = noExceptionObject.indexOf('/');
+                if (firstSlash < 0) {
+                    throw new Exception("Invalid filename " + noExceptionObject);
+                }
+                out.print("    '" + noExceptionObject.substring(firstSlash + 1) + ".cxx'");
+                first = false;
+            }
+            out.println();
+            out.println("])");
+        }
         
         return objectsVariable;
     }
diff --git a/main/site_scons/site_init.py b/main/site_scons/site_init.py
index f41a204..11a6244 100644
--- a/main/site_scons/site_init.py
+++ b/main/site_scons/site_init.py
@@ -23,7 +23,6 @@ from SCons.Script import *
 import sys
 import os
 from config import soenv
-import component
 from globals import *