Rebased ref, commits from common ancestor:
commit 69e63f88dc68b47e72096ff787a90a1a5fdd8551
Author: Jan-Marek Glogowski <[email protected]>
AuthorDate: Sun Nov 14 14:23:43 2021 +0100
Commit: Jan-Marek Glogowski <[email protected]>
CommitDate: Sun Nov 14 14:37:36 2021 +0100
Load android/default-document/example.odt via cmdline
This also includes fixes needed after the master rebase for the
following bugs:
* boost 1.77.0 Emscripten WASM build
* thread support with Emscripten clang via gb_CXXFLAGS
* gb_var2file rename
And it lowers the logging to +WARN. SAL_DEBUG is alway logged.
Change-Id: I8ccae56868c7c9e6a88f0281578e17392c8b10ab
diff --git a/desktop/Executable_soffice_bin.mk
b/desktop/Executable_soffice_bin.mk
index 14a72ab6c055..a88d817afea5 100644
--- a/desktop/Executable_soffice_bin.mk
+++ b/desktop/Executable_soffice_bin.mk
@@ -27,6 +27,8 @@ $(eval $(call gb_Executable_add_cobjects,soffice_bin,\
desktop/source/app/main \
))
+$(eval $(call gb_Executable_add_prejs,soffice_bin,static/soffice_args.js))
+
ifeq ($(OS),WNT)
$(eval $(call gb_Executable_set_targettype_gui,soffice_bin,NO))
diff --git a/desktop/source/app/cmdlineargs.cxx
b/desktop/source/app/cmdlineargs.cxx
index e5f354ac7935..688491eb248f 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -112,7 +112,6 @@ enum class CommandLineEvent {
// If no event argument is explicitly set in command line,
// then it returns updated command line event,
// according to Office URI command.
-#ifndef ENABLE_WASM_STRIP
CommandLineEvent CheckOfficeURI(/* in,out */ OUString& arg, CommandLineEvent
curEvt)
{
// 1. Strip the scheme name
@@ -246,7 +245,6 @@ CommandLineEvent CheckWebQuery(/* in,out */ OUString& arg,
CommandLineEvent curE
return curEvt;
}
-#endif
} // namespace
@@ -279,8 +277,6 @@ CommandLineArgs::CommandLineArgs( Supplier& supplier )
void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
{
#ifdef ENABLE_WASM_STRIP
- (void) supplier;
-
// use hard-coded init-params for wasm '-nolockcheck -norestore -nologo
-writer'
// no restore tries
m_norestore = true;
@@ -293,10 +289,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier&
supplier )
// start with writer only
m_writer = true;
m_bDocumentArgs = true;
-
- m_bEmpty = false;
-
-#else
+#endif
m_cwdUrl = supplier.getCwdUrl();
CommandLineEvent eCurrentEvent = CommandLineEvent::Open;
@@ -670,6 +663,9 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier&
supplier )
case CommandLineEvent::Open:
m_openlist.push_back(aArg);
m_bDocumentArgs = true;
+#ifdef ENABLE_WASM_STRIP
+ m_writer = false;
+#endif
break;
case CommandLineEvent::View:
m_viewlist.push_back(aArg);
@@ -709,7 +705,6 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier&
supplier )
}
}
}
-#endif
}
void CommandLineArgs::InitParamValues()
diff --git a/external/boost/UnpackedTarball_boost.mk
b/external/boost/UnpackedTarball_boost.mk
index 838c495c5161..beb03a436550 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -44,6 +44,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,boost,3))
$(eval $(call gb_UnpackedTarball_add_patches,boost,\
$(foreach patch,$(boost_patches),external/boost/$(patch)) \
external/boost/boost-emscripten-noshm.patch.0 \
+ external/boost/boost-emscripten-nowasm.patch.0 \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/boost/boost-emscripten-nowasm.patch.0
b/external/boost/boost-emscripten-nowasm.patch.0
new file mode 100644
index 000000000000..39723351e380
--- /dev/null
+++ b/external/boost/boost-emscripten-nowasm.patch.0
@@ -0,0 +1,11 @@
+--- boost/config/detail/select_platform_config.hpp.orig 2021-11-13
18:32:09.446182220 +0100
++++ boost/config/detail/select_platform_config.hpp 2021-11-13
18:32:57.734041110 +0100
+@@ -89,7 +89,7 @@
+ // Nuxi CloudABI:
+ # define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp"
+
+-#elif defined (__wasm__)
++#elif defined (__wasm__) && !defined (__EMSCRIPTEN__)
+ // Web assembly:
+ # define BOOST_PLATFORM_CONFIG "boost/config/platform/wasm.hpp"
+
diff --git a/postprocess/CustomTarget_components.mk
b/postprocess/CustomTarget_components.mk
index c6bea411f7f9..8bf34ada4020 100644
--- a/postprocess/CustomTarget_components.mk
+++ b/postprocess/CustomTarget_components.mk
@@ -22,7 +22,7 @@ $(postprocess_WORKDIR)/services_componentfiles.list: \
$(call gb_Rdb_get_target,ure/services) \
| $(postprocess_WORKDIR)/.dir
$(call gb_Output_announce,$(subst $(BUILDDIR)/,,$@),$(true),GEN,2)
- TEMPFILE=$(call var2file,$(shell $(gb_MKTEMP)),1, \
+ TEMPFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),1, \
$(foreach comp,$(sort $(gb_ComponentTarget__ALLCOMPONENTS)),$(call
gb_ComponentTarget_get_source,$(comp)))) && \
mv $$TEMPFILE $@
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
index ef393cb33949..133220a3e587 100644
--- a/solenv/gbuild/Executable.mk
+++ b/solenv/gbuild/Executable.mk
@@ -156,6 +156,7 @@ gb_Executable_use_clang = $(call
gb_Executable__forward_to_Linktarget,$(0),$(1),
gb_Executable_set_clang_precompiled_header = $(call
gb_Executable__forward_to_Linktarget,$(0),$(1),$(2),$(3))
gb_Executable_use_glxtest = $(call
gb_Executable__forward_to_Linktarget,$(0),$(1),$(2),$(3))
gb_Executable_use_vclmain = $(call
gb_Executable__forward_to_Linktarget,$(0),$(1),$(2),$(3))
+gb_Executable_add_prejs = $(call
gb_Executable__forward_to_Linktarget,$(0),$(1),$(2),$(3))
# Run-time use
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 619410313f95..25c9c05353f0 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -900,7 +900,7 @@ define gb_LinkTarget__static_dep_x_template
define gb_LinkTarget__command_dep_$(1)
$$(call gb_Output_announce,LNK:$$(2).d.$(1),$$(true),DEP,1)
mkdir -p $$(dir $$(1)) && \
-TEMPFILE=$$(call var2file,$$(shell $$(gb_MKTEMP)),200,\
+TEMPFILE=$$(call gb_var2file,$$(shell $$(gb_MKTEMP)),200,\
$$(call gb_LinkTarget__get_all_$(1),$$(2))) && \
$$(call gb_Helper_replace_if_different_and_touch,$$$${TEMPFILE},$$(1))
@@ -1066,6 +1066,7 @@ $(call gb_LinkTarget_get_target,$(1)) : T_CC :=
$(call gb_LinkTarget_get_target,$(1)) : T_CXX :=
$(call gb_LinkTarget_get_target,$(1)) : T_USE_LD := $(USE_LD)
$(call gb_LinkTarget_get_target,$(1)) : T_LTOFLAGS := $(gb_LTOFLAGS)
+$(call gb_LinkTarget_get_target,$(1)) : T_PREJS :=
ifeq ($(gb_FULLDEPS),$(true))
ifeq (depcache:,$(filter depcache,$(.FEATURES)):$(gb_PARTIAL_BUILD))
@@ -2258,4 +2259,12 @@ endef
# call gb_LinkTarget__set_plugin_for_nodep,linktarget,loader
gb_LinkTarget__set_plugin_for_nodep = $(call
gb_LinkTarget__set_plugin_for,$(1),$(2),$(true))
+define gb_LinkTarget_add_prejs
+ifeq (EMSCRIPTEN,$(OS))
+$(call gb_LinkTarget_get_target,$(1)) : T_PREJS += $(SRCDIR)/$(2)
+$(call gb_LinkTarget_get_target,$(1)) : $(SRCDIR)/$(2)
+endif
+
+endef
+
# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk
b/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk
index 562ed18cf867..9ad434a4eb66 100644
--- a/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk
@@ -33,6 +33,7 @@ else
gb_EMSCRIPTEN_EXCEPT = -s DISABLE_EXCEPTION_CATCHING=0
endif
+gb_CXXFLAGS += $(gb_EMSCRIPTEN_CPPFLAGS)
gb_LinkTarget_EXCEPTIONFLAGS += $(gb_EMSCRIPTEN_EXCEPT)
gb_LinkTarget_CFLAGS += $(gb_EMSCRIPTEN_CPPFLAGS) $(gb_EMSCRIPTEN_QTDEFS)
gb_LinkTarget_CXXFLAGS += $(gb_EMSCRIPTEN_CPPFLAGS) $(gb_EMSCRIPTEN_QTDEFS)
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index 30e1b1946060..84d315c20e3a 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -124,7 +124,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(if $(SOVERSIONSCRIPT),-Wl$(COMMA)--soname=$(notdir $(1)) \
-Wl$(COMMA)--version-script=$(SOVERSIONSCRIPT)) \
$(subst \d,$$,$(RPATH)) \
- $(T_USE_LD) $(T_LDFLAGS) \
+ $(T_USE_LD) $(T_LDFLAGS) $(foreach pre_js,$(T_PREJS), --pre-js
$(pre_js)) \
$(foreach object,$(COBJECTS),$(call
gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call
gb_CxxObject_get_target,$(object))) \
$(foreach object,$(ASMOBJECTS),$(call
gb_AsmObject_get_target,$(object))) \
diff --git a/static/CustomTarget_wasm_fs_image.mk
b/static/CustomTarget_wasm_fs_image.mk
index b999811be389..54400cc2b219 100644
--- a/static/CustomTarget_wasm_fs_image.mk
+++ b/static/CustomTarget_wasm_fs_image.mk
@@ -1121,6 +1121,7 @@ gb_wasm_image_filelist := \
$(INSTROOT)/share/config/soffice.cfg/sfx/ui/templatepanel.ui \
$(INSTROOT)/share/config/soffice.cfg/sfx/ui/floatingrecord.ui \
$(INSTROOT)/share/config/images_breeze.zip \
+ $(SRCDIR)/android/default-document/example.odt \
wasm_fs_image_WORKDIR := $(call
gb_CustomTarget_get_workdir,static/wasm_fs_image)
@@ -1137,7 +1138,7 @@ $(wasm_fs_image_WORKDIR)/soffice.data.js.link:
$(wasm_fs_image_WORKDIR)/soffice.
$(call gb_Helper_replace_if_different_and_touch,$^.tmp,$@)
$(wasm_fs_image_WORKDIR)/soffice.data.filelist: $(gb_wasm_image_filelist) |
$(wasm_fs_image_WORKDIR)/.dir
- TEMPFILE=$(call var2file,$(shell $(gb_MKTEMP)),1,$(subst
$(BUILDDIR)/,,$^)) && \
+ TEMPFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),1,$(subst
$(SRCDIR)/,,$(subst $(BUILDDIR)/,,$^))) && \
mv $$TEMPFILE [email protected]
$(call gb_Helper_replace_if_different_and_touch,[email protected],$@)
diff --git a/static/environment.js b/static/environment.js
index 61663cb148e6..9435635fb7e4 100644
--- a/static/environment.js
+++ b/static/environment.js
@@ -1,3 +1,3 @@
Module.preRun.push(function() {
- ENV.SAL_LOG = "+INFO+WARN+DEBUG"
+ ENV.SAL_LOG = "+WARN"
});
diff --git a/static/soffice_args.js b/static/soffice_args.js
new file mode 100644
index 000000000000..4db43905aa07
--- /dev/null
+++ b/static/soffice_args.js
@@ -0,0 +1 @@
+Module['arguments'] = ['/android/default-document/example.odt'];
commit 72c689895e48892f2928beaf41ef14d323409d5e
Author: Armin Le Grand (Allotropia) <[email protected]>
AuthorDate: Fri Nov 12 17:16:32 2021 +0100
Commit: Jan-Marek Glogowski <[email protected]>
CommitDate: Sun Nov 14 14:37:36 2021 +0100
WASM: Make test file loading work
Change-Id: Ic34104534c3e0e73791cf867bfb2e1246dc79cf8
diff --git a/framework/source/helper/statusindicator.cxx
b/framework/source/helper/statusindicator.cxx
index 2deb4a0ae5b2..7dcc9018e1f3 100644
--- a/framework/source/helper/statusindicator.cxx
+++ b/framework/source/helper/statusindicator.cxx
@@ -40,7 +40,7 @@ void SAL_CALL StatusIndicator::start(const OUString& sText,
sal_Int32 nRange)
comphelper::LibreOfficeKit::statusIndicatorStart(sText);
}
-#if !defined(IOS) && !defined(ANDROID)
+#if !defined(IOS) && !defined(ANDROID) && !defined(EMSCRIPTEN)
css::uno::Reference<css::task::XStatusIndicatorFactory>
xFactory(m_xFactory);
if (xFactory.is())
{
@@ -58,7 +58,7 @@ void SAL_CALL StatusIndicator::end()
{
comphelper::LibreOfficeKit::statusIndicatorFinish();
}
-#if !defined(IOS) && !defined(ANDROID)
+#if !defined(IOS) && !defined(ANDROID) && !defined(EMSCRIPTEN)
css::uno::Reference<css::task::XStatusIndicatorFactory>
xFactory(m_xFactory);
if (xFactory.is())
{
@@ -72,7 +72,7 @@ void SAL_CALL StatusIndicator::reset()
{
if (comphelper::LibreOfficeKit::isActive())
return;
-#if !defined(IOS) && !defined(ANDROID)
+#if !defined(IOS) && !defined(ANDROID) && !defined(EMSCRIPTEN)
css::uno::Reference<css::task::XStatusIndicatorFactory>
xFactory(m_xFactory);
if (xFactory.is())
{
@@ -86,7 +86,7 @@ void SAL_CALL StatusIndicator::setText(const OUString& sText)
{
if (comphelper::LibreOfficeKit::isActive())
return;
-#if !defined(IOS) && !defined(ANDROID)
+#if !defined(IOS) && !defined(ANDROID) && !defined(EMSCRIPTEN)
css::uno::Reference<css::task::XStatusIndicatorFactory>
xFactory(m_xFactory);
if (xFactory.is())
{
@@ -113,7 +113,7 @@ void SAL_CALL StatusIndicator::setValue(sal_Int32 nValue)
}
return;
}
-#if !defined(IOS) && !defined(ANDROID)
+#if !defined(IOS) && !defined(ANDROID) && !defined(EMSCRIPTEN)
css::uno::Reference<css::task::XStatusIndicatorFactory>
xFactory(m_xFactory);
if (xFactory.is())
{
diff --git a/package/source/zipapi/ZipFile.cxx
b/package/source/zipapi/ZipFile.cxx
index 2b298e0ebdf8..46502be3adba 100644
--- a/package/source/zipapi/ZipFile.cxx
+++ b/package/source/zipapi/ZipFile.cxx
@@ -653,9 +653,11 @@ uno::Reference< XInputStream >
ZipFile::createStreamForZipEntry(
uno::Reference<io::XInputStream> xBufStream;
static const sal_Int32 nThreadingThreshold = 10000;
+#ifndef EMSCRIPTEN
if( xSrcStream->available() > nThreadingThreshold )
xBufStream = new XBufferedThreadedStream(xSrcStream,
xSrcStream->getSize());
else
+#endif
xBufStream = new XBufferedStream(xSrcStream);
return xBufStream;
diff --git a/sax/source/fastparser/fastparser.cxx
b/sax/source/fastparser/fastparser.cxx
index 97435e2219ea..bc4e00ba0349 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -838,6 +838,9 @@ void FastSaxParserImpl::parseStream(const InputSource&
rStructSource)
rEntity.mxDocumentHandler->startDocument();
}
+#ifdef EMSCRIPTEN
+ rEntity.mbEnableThreads = false;
+#else
if (!getenv("SAX_DISABLE_THREADS") && !m_bDisableThreadedParser)
{
Reference<css::io::XSeekable>
xSeekable(rEntity.maStructSource.aInputStream, UNO_QUERY);
@@ -845,6 +848,7 @@ void FastSaxParserImpl::parseStream(const InputSource&
rStructSource)
rEntity.mbEnableThreads = (xSeekable.is() && xSeekable->getLength() >
10000)
|| (rEntity.maStructSource.aInputStream->available() > 10000);
}
+#endif
if (rEntity.mbEnableThreads)
{
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index faaafa3f7cd3..a0b5ecfe5f3d 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -482,6 +482,7 @@ static bool ImplYield(bool i_bWait, bool i_bAllEvents)
bool Application::Reschedule( bool i_bAllEvents )
{
#ifdef EMSCRIPTEN
+ SAL_INFO("wasm", "Application::Reschedule(" << i_bAllEvents << ")");
(void) i_bAllEvents;
std::abort();
#else
@@ -541,6 +542,7 @@ SAL_DLLPUBLIC_EXPORT void unit_lok_process_events_to_idle()
void Application::Yield()
{
#ifdef EMSCRIPTEN
+ SAL_INFO("wasm", "Application::Yield()");
std::abort();
#else
ImplYield(true, false);
diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx
index 6fa0830ff68b..68f56b09c859 100644
--- a/xmloff/source/core/xmlimp.cxx
+++ b/xmloff/source/core/xmlimp.cxx
@@ -1567,7 +1567,9 @@ void SvXMLImport::SetAutoStyles( SvXMLStylesContext
*pAutoStyles )
mxAutoStyles = pAutoStyles;
GetTextImport()->SetAutoStyles( pAutoStyles );
GetShapeImport()->SetAutoStylesContext( pAutoStyles );
+#ifndef ENABLE_WASM_STRIP_CHART
GetChartImport()->SetAutoStylesContext( pAutoStyles );
+#endif
GetFormImport()->setAutoStyleContext( pAutoStyles );
}