Repository.mk                                           |    2 +-
 RepositoryFixes.mk                                      |    4 ++++
 comphelper/source/misc/synchronousdispatch.cxx          |    4 +++-
 configure.ac                                            |    8 +++++++-
 desktop/Module_desktop.mk                               |    2 +-
 desktop/source/app/officeipcthread.cxx                  |    2 +-
 external/cairo/ExternalProject_cairo.mk                 |    2 +-
 external/libnumbertext/ExternalProject_libnumbertext.mk |    2 +-
 sal/osl/unx/nlsupport.cxx                               |    4 ++--
 solenv/bin/image-sort.py                                |    2 +-
 solenv/gbuild/LinkTarget.mk                             |    8 +++++++-
 solenv/gbuild/Package.mk                                |    2 +-
 solenv/gbuild/platform/unxgcc.mk                        |    3 +++
 vcl/Module_vcl.mk                                       |    4 +++-
 14 files changed, 36 insertions(+), 13 deletions(-)

New commits:
commit 599cbdb9c2a1184680bb89aa2978e8003eca93d9
Author:     Jan-Marek Glogowski <glo...@fbihome.de>
AuthorDate: Fri May 21 15:41:15 2021 +0200
Commit:     Jan-Marek Glogowski <glo...@fbihome.de>
CommitDate: Wed Jan 19 10:49:40 2022 +0100

    WASM more initial bits and pieces
    
    All the small stuff, which is needed for the WASM build, but is
    not really worth an extra patch.
    
    * No soffice.sh script needed for WASM
    * WASM soffice.bin executable extension is html
    * Some small additional SAL_LOG output
    * Default to colibre icon theme
    * Test for qt5 even without X11
    * Remove emconfigure artefacts at the end of the configure run
    * No oosplash for WASM
    * Disable the Office IPC thread
    * Suppress -Wno-enum-conversion for Cairo builds
    * Fix libnumbertext by using gb_EMSCRIPTEN_CPPFLAGS
    * Map EMSCRIPTEN to LINUX nls
    * No extra newlines for missing icon theme images
    * Print the missing dependency in some gbuild error messages
    * Copy Qt WASM loader, HTML template and SVG logo for binaries
    * Especially build the vcldemo for Emscripten
    
    Change-Id: I356370c72cc09357411e14d0c00762152877a800
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128584
    Tested-by: Jenkins
    Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de>

diff --git a/Repository.mk b/Repository.mk
index 19dc0b034189..895d99fbadc2 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -1054,7 +1054,7 @@ $(eval $(call 
gb_Helper_register_packages_for_install,brand,\
        desktop_branding \
        $(if $(CUSTOM_BRAND_DIR),desktop_branding_custom) \
        $(if $(filter DESKTOP,$(BUILD_TYPE)),desktop_scripts_install) \
-       $(if $(and $(filter-out MACOSX HAIKU WNT,$(OS)),$(filter 
DESKTOP,$(BUILD_TYPE))),\
+       $(if $(and $(filter-out EMSCRIPTEN HAIKU MACOSX WNT,$(OS)),$(filter 
DESKTOP,$(BUILD_TYPE))),\
                $(if $(DISABLE_GUI),, \
                        desktop_soffice_sh \
                ) \
diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk
index db78722ce545..0cbb5ad93e6c 100644
--- a/RepositoryFixes.mk
+++ b/RepositoryFixes.mk
@@ -34,8 +34,12 @@ endif
 ifeq ($(OS),MACOSX)
 gb_Executable_FILENAMES := $(patsubst 
soffice_bin:soffice_bin,soffice_bin:soffice,$(gb_Executable_FILENAMES))
 else
+ifeq ($(OS),EMSCRIPTEN)
+gb_Executable_FILENAMES := $(patsubst 
soffice_bin:soffice_bin%,soffice_bin:soffice.html,$(gb_Executable_FILENAMES))
+else
 gb_Executable_FILENAMES := $(patsubst 
soffice_bin:soffice_bin%,soffice_bin:soffice.bin,$(gb_Executable_FILENAMES))
 endif
+endif
 
 gb_Executable_FILENAMES := $(patsubst 
soffice_exe:soffice_exe%,soffice_exe:soffice.exe,$(gb_Executable_FILENAMES))
 gb_Executable_FILENAMES := $(patsubst 
soffice_com:soffice_com%,soffice_com:soffice.com,$(gb_Executable_FILENAMES))
diff --git a/comphelper/source/misc/synchronousdispatch.cxx 
b/comphelper/source/misc/synchronousdispatch.cxx
index a09f05db8331..6a0553d8117f 100644
--- a/comphelper/source/misc/synchronousdispatch.cxx
+++ b/comphelper/source/misc/synchronousdispatch.cxx
@@ -65,7 +65,9 @@ uno::Reference< lang::XComponent > 
SynchronousDispatch::dispatch(
         }
         catch ( uno::Exception& )
         {
-            SAL_WARN("comphelper","SynchronousDispatch::dispatch() Error while 
dispatching!");
+            // can't use TOOLS_WARN_EXCEPTION, as comphelper is used by libtk!
+            SAL_WARN("comphelper", "SynchronousDispatch::dispatch(): error 
while dispatching '"
+                                    << sURL << "' for '" << sTarget << "'!");
         }
     }
 
diff --git a/configure.ac b/configure.ac
index 7dfdb1a18062..e561a55e1a15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1121,7 +1121,7 @@ emscripten)
     enable_scripting=no
     enable_xmlhelp=no
     with_system_zlib=no
-    with_theme="breeze"
+    with_theme="colibre"
     _os=Emscripten
     ;;
 
@@ -5234,6 +5234,9 @@ if test "$using_x11" = yes; then
         AC_DEFINE(USING_X11)
     else
         disable_x11_tests
+        if test "$DISABLE_DYNLOADING" = TRUE; then
+            test_qt5=yes
+        fi
     fi
 else
     if test "$USING_X11" = TRUE; then
@@ -14645,4 +14648,7 @@ if test -s "$WARNINGS_FILE"; then
     cat "$WARNINGS_FILE"
 fi
 
+# Remove unneeded emconfigure artifacts
+rm -f a.out a.wasm a.out.js a.out.wasm
+
 dnl vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/desktop/Module_desktop.mk b/desktop/Module_desktop.mk
index aca0273dc972..191a2cba4c6f 100644
--- a/desktop/Module_desktop.mk
+++ b/desktop/Module_desktop.mk
@@ -95,7 +95,7 @@ $(eval $(call gb_Module_add_targets,desktop,\
     WinResTarget_swriter \
 ))
 
-else ifeq (,$(filter MACOSX ANDROID iOS HAIKU,$(OS)))
+else ifeq (,$(filter MACOSX ANDROID iOS HAIKU EMSCRIPTEN,$(OS)))
 
 ifeq (,$(filter FUZZERS,$(BUILD_TYPE)))
 $(eval $(call gb_Module_add_targets,desktop,\
diff --git a/desktop/source/app/officeipcthread.cxx 
b/desktop/source/app/officeipcthread.cxx
index 07880d27fc4c..d748bef60c68 100644
--- a/desktop/source/app/officeipcthread.cxx
+++ b/desktop/source/app/officeipcthread.cxx
@@ -697,7 +697,7 @@ RequestHandler::Status RequestHandler::Enable(bool ipc)
     if( pGlobal.is() )
         return IPC_STATUS_OK;
 
-#if !HAVE_FEATURE_DESKTOP || HAVE_FEATURE_MACOSX_SANDBOX
+#if !HAVE_FEATURE_DESKTOP || HAVE_FEATURE_MACOSX_SANDBOX || defined(EMSCRIPTEN)
     ipc = false;
 #endif
 
diff --git a/external/cairo/ExternalProject_cairo.mk 
b/external/cairo/ExternalProject_cairo.mk
index d7e5579d4107..8b9af6220118 100644
--- a/external/cairo/ExternalProject_cairo.mk
+++ b/external/cairo/ExternalProject_cairo.mk
@@ -48,7 +48,7 @@ $(call gb_ExternalProject_get_state_target,cairo,build) :
        $(gb_RUN_CONFIGURE) ./configure \
                $(if $(debug),STRIP=" ") \
                $(if $(filter ANDROID iOS,$(OS)),CFLAGS="$(if $(debug),-g) 
$(ZLIB_CFLAGS) $(gb_VISIBILITY_FLAGS)") \
-               $(if $(filter EMSCRIPTEN,$(OS)),CFLAGS=" $(ZLIB_CFLAGS)" 
--enable-pthread=yes PTHREAD_LIBS="") \
+               $(if $(filter EMSCRIPTEN,$(OS)),CFLAGS=" $(ZLIB_CFLAGS) 
-Wno-enum-conversion" --enable-pthread=yes PTHREAD_LIBS="") \
                $(if $(filter-out EMSCRIPTEN ANDROID 
iOS,$(OS)),CFLAGS="$(CFLAGS) $(if $(debug),-g) $(ZLIB_CFLAGS)" ) \
                $(if $(filter ANDROID iOS,$(OS)),PKG_CONFIG=./dummy_pkg_config) 
\
                LIBS="$(ZLIB_LIBS)" \
diff --git a/external/libnumbertext/ExternalProject_libnumbertext.mk 
b/external/libnumbertext/ExternalProject_libnumbertext.mk
index 1473b5c136a3..68d56bee5c7f 100644
--- a/external/libnumbertext/ExternalProject_libnumbertext.mk
+++ b/external/libnumbertext/ExternalProject_libnumbertext.mk
@@ -16,7 +16,7 @@ $(eval $(call 
gb_ExternalProject_register_targets,libnumbertext,\
        build \
 ))
 
-libnumbertext_CXXFLAGS=$(CXXFLAGS) $(CXXFLAGS_CXX11)
+libnumbertext_CXXFLAGS=$(CXXFLAGS) $(CXXFLAGS_CXX11) $(gb_EMSCRIPTEN_CPPFLAGS)
 
 libnumbertext_CPPFLAGS+=$(gb_COMPILERDEFS_STDLIB_DEBUG)
 
diff --git a/sal/osl/unx/nlsupport.cxx b/sal/osl/unx/nlsupport.cxx
index cc07a13805ba..2780a7fdd895 100644
--- a/sal/osl/unx/nlsupport.cxx
+++ b/sal/osl/unx/nlsupport.cxx
@@ -32,7 +32,7 @@
 #include "nlsupport.hxx"
 
 // these share a lot, so use one define
-#if defined(LINUX) || defined(__sun) || \
+#if defined(LINUX) || defined(EMSCRIPTEN) || defined(__sun) || \
     defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY) || 
defined(NETBSD)
 #define LO_COMMON_NLS_ARCHS 1
 #else
@@ -284,7 +284,7 @@ static const Pair nl_language_list[] = {
 /* XXX MS-874 is an extension to tis620, so this is not
  * really equivalent */
 
-#elif defined(LINUX)
+#elif defined(LINUX) || defined(EMSCRIPTEN)
 
 #if !defined(CODESET)
 #define CODESET _NL_CTYPE_CODESET_NAME
diff --git a/solenv/bin/image-sort.py b/solenv/bin/image-sort.py
index 75b5da6ce0e7..5d248684b4a6 100644
--- a/solenv/bin/image-sort.py
+++ b/solenv/bin/image-sort.py
@@ -30,7 +30,7 @@ def read_icons(fname):
     full_path = os.path.join(args.base_path, fname)
     if not os.path.exists(full_path):
         if not args.quiet:
-            print("Skipping non-existent {}\n".format(full_path), 
file=sys.stderr)
+            print("Skipping non-existent {}".format(full_path), 
file=sys.stderr)
         return images
     with open(full_path) as fp:
         for line in fp:
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 3ea562e02b50..22fe3bafc3ff 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -56,11 +56,16 @@ gb_LinkTarget__get_debugflags= \
         $(if 
$(ENABLE_OPTIMIZED_DEBUG),$(gb_COMPILERDEBUGOPTFLAGS),$(gb_COMPILERNOOPTFLAGS)))
 \
     $(if $(call gb_LinkTarget__symbols_enabled,$(1)),$(gb_DEBUGINFO_FLAGS))
 
+# T_LDFLAGS is just expanded once. Override the flags here, so that the linker 
and compiler use the same.
+ifeq (EMSCRIPTEN,$(OS))
+gb_LinkTarget__get_debugldflags=$(call gb_LinkTarget__get_debugflags,$1)
+else
 # similar for LDFLAGS, use linker optimization flags in non-debug case,
 # but moreover strip debug from libraries for which debuginfo is not wanted
 # (some libraries reuse .o files from other libraries, notably unittests)
 gb_LinkTarget__get_stripldflags=$(if $(strip 
$(CFLAGS)$(CXXFLAGS)$(OBJCFLAGS)$(OBJCXXFLAGS)$(LDFLAGS)),,$(gb_LINKERSTRIPDEBUGFLAGS))
 gb_LinkTarget__get_debugldflags=$(if $(call 
gb_LinkTarget__symbols_enabled,$(1)),$(gb_LINKER_DEBUGINFO_FLAGS),$(gb_LINKEROPTFLAGS)
 $(call gb_LinkTarget__get_stripldflags,$(1)))
+endif
 
 # generic cflags/cxxflags to use (optimization flags, debug flags)
 # user supplied CFLAGS/CXXFLAGS override default debug/optimization flags
@@ -1925,7 +1930,7 @@ $(2) : $(call gb_LinkTarget_get_target,$(1))
                touch -r $$< $$@; \
        else \
                rm -f $$<; \
-               echo "ERROR: aux-target missing, library deleted, please try 
running make again"; \
+               echo "ERROR: aux-target $$@ missing, library deleted, please 
try running make again"; \
                false; \
        fi
 
@@ -2096,6 +2101,7 @@ endef
 define gb_LinkTarget_use_package
 $(call gb_LinkTarget_get_headers_target,$(1)) :| \
        $(call gb_Package_get_target,$(strip $(2)))
+$(call gb_Package_get_target,$(strip $(2))): RDEPENDS += $(call 
gb_LinkTarget__get_workdir_linktargetname,$(1))
 
 endef
 
diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk
index e08ff07e1ba9..9c90322cfcdc 100644
--- a/solenv/gbuild/Package.mk
+++ b/solenv/gbuild/Package.mk
@@ -80,7 +80,7 @@ $(call gb_Package_get_preparation_target,%) :
 $(call gb_Package_get_target,%) :
        $(call gb_Output_announce,$*,$(true),PKG,2)
        $(call gb_Trace_StartRange,$*,PKG)
-       $(if $(PACKAGE_DEFINED),,$(call gb_Output_error,Something depends on 
package $* which does not exist.))
+       $(if $(PACKAGE_DEFINED),,$(call gb_Output_error,$(RDEPENDS) depend(s) 
on package $* which does not exist.))
        rm -f $@ && \
        mv $(call gb_var2file,$@.tmp,100,$(sort $(FILES))) $@
        $(call gb_Trace_EndRange,$*,PKG)
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index e24aaa4e1fe6..de3c2f8cc95a 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -172,6 +172,9 @@ $(if $(filter Library,$(TARGETTYPE)), $(call 
gb_Helper_abbreviate_dirs,\
         | cut -d' ' -f1-2 >> $(WORKDIR)/LinkTarget/$(2).exports.tmp && \
     $(call 
gb_Helper_replace_if_different_and_touch,$(WORKDIR)/LinkTarget/$(2).exports.tmp,
 \
         $(WORKDIR)/LinkTarget/$(2).exports,$(1))))
+$(if $(and $(filter CppunitTest Executable,$(TARGETTYPE)),$(filter 
EMSCRIPTEN,$(OS)),$(filter TRUE,$(ENABLE_QT5))), \
+    cp $(QT5_PLATFORMS_SRCDIR)/qtlogo.svg $(QT5_PLATFORMS_SRCDIR)/qtloader.js 
$(dir $(1)) ; \
+    sed -e 's/@APPNAME@/$(subst $(gb_Executable_EXT),,$(notdir $(1)))/' 
$(QT5_PLATFORMS_SRCDIR)/wasm_shell.html > $(dir $(1))qt_$(notdir $(1)))
 endef
 
 define gb_LinkTarget__command_staticlink
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
index acd0de996364..bde384f05086 100644
--- a/vcl/Module_vcl.mk
+++ b/vcl/Module_vcl.mk
@@ -31,7 +31,9 @@ $(eval $(call gb_Module_add_targets,vcl,\
         Package_skia_denylist ) \
     $(if $(filter DESKTOP FUZZERS,$(BUILD_TYPE)), \
         StaticLibrary_vclmain \
-        $(if $(or $(DISABLE_GUI),$(DISABLE_DYNLOADING)),, \
+        $(if $(or $(DISABLE_GUI),$(DISABLE_DYNLOADING)), \
+            $(if $(filter EMSCRIPTEN,$(OS)),Executable_vcldemo) \
+        , \
             $(if $(filter LINUX MACOSX SOLARIS WNT %BSD,$(OS)), \
                 Executable_vcldemo \
                 Executable_icontest \

Reply via email to