Introduce EMSCRIPTEN_EXTRA_QTLOADER_CONFIG

for use in Emscripten --enable-qt6 builds, to e.g. add command line arguments
(like --writer) into qt_soffice.html.

For standard --enable-qt5 Emscripten builds, it works to specify an

> EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS=/path/to/include.js

containing

> Module.arguments = ['--writer'];

to make qt_soffice.html open a Writer document.  Due to how the Qt loading has
changed in Qt6, that no longer works for --enable-qt6 Emscripten builds.  But
what works there now is to instead specify an

> EMSCRIPTEN_EXTRA_QTLOADER_CONFIG=arguments:['--writer']

(The sed -z option that is necessary to replace text spanning a newline is a
non-standard GNU extension, but lets assume that this is only executed for
cross-builds from Linux that use GNU sed.)

Change-Id: I31372a7a1f8fccbe0fe2594614bf5846e5e5c95f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180821
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
This commit is contained in:
Stephan Bergmann
2025-01-28 13:20:25 +01:00
parent a4af3948e9
commit 795e6f6f3e
3 changed files with 3 additions and 1 deletions
+1
View File
@@ -148,6 +148,7 @@ export DPKG=@DPKG@
export EBOOK_CFLAGS=$(gb_SPACE)@EBOOK_CFLAGS@
export EBOOK_LIBS=$(gb_SPACE)@EBOOK_LIBS@
export EMSDK_FILE_PACKAGER=@EMSDK_FILE_PACKAGER@
export EMSCRIPTEN_EXTRA_QTLOADER_CONFIG=@EMSCRIPTEN_EXTRA_QTLOADER_CONFIG@
export EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS=@EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS@
export EMSCRIPTEN_WORKERJS=@EMSCRIPTEN_WORKERJS@
export ENABLE_ANDROID_LOK=@ENABLE_ANDROID_LOK@
+1
View File
@@ -1505,6 +1505,7 @@ if test "$_os" = "Emscripten"; then
fi
fi
AC_SUBST(EMSDK_FILE_PACKAGER)
AC_SUBST(EMSCRIPTEN_EXTRA_QTLOADER_CONFIG)
AC_SUBST(EMSCRIPTEN_EXTRA_SOFFICE_PRE_JS)
AC_SUBST(EMSCRIPTEN_WORKERJS)
+1 -1
View File
@@ -185,7 +185,7 @@ $(if $(filter TRUE,$(ENABLE_QT5)), \
sed -e 's/@APPNAME@/$(subst $(gb_Executable_EXT),,$(notdir $(1)))/' $(QT5_PLATFORMS_SRCDIR)/wasm_shell.html > $(dir $(1))qt_$(basename $(notdir $(1))).html && \
cp $(QT5_PLATFORMS_SRCDIR)/qtlogo.svg $(QT5_PLATFORMS_SRCDIR)/qtloader.js $(dir $(1)) && \
,$(if $(filter TRUE,$(ENABLE_QT6)), \
sed -e 's/@APPNAME@/$(basename $(notdir $(1)))/g' -e 's/@APPEXPORTNAME@/$(basename $(notdir $(1)))_entry/g' -e 's/@PRELOAD@//g' -e 's/}$(CLOSE_PAREN);$$/}$(CLOSE_PAREN); window.Module = instance;/' $(QT6_PLATFORMS_SRCDIR)/wasm_shell.html > $(dir $(1))qt_$(basename $(notdir $(1))).html && \
sed -z -e 's/@APPNAME@/$(basename $(notdir $(1)))/g' -e 's/@APPEXPORTNAME@/$(basename $(notdir $(1)))_entry/g' -e 's/@PRELOAD@\n }/}$(COMMA)$(subst ','\'',$(EMSCRIPTEN_EXTRA_QTLOADER_CONFIG))/' -e 's/}$(CLOSE_PAREN);$$/}$(CLOSE_PAREN); window.Module = instance;/' $(QT6_PLATFORMS_SRCDIR)/wasm_shell.html > $(dir $(1))qt_$(basename $(notdir $(1))).html && \
cp $(QT6_PLATFORMS_SRCDIR)/qtlogo.svg $(QT6_PLATFORMS_SRCDIR)/qtloader.js $(dir $(1)) && \
)) \
cp $(gb_CustomTarget_workdir)/static/emscripten_fs_image/soffice.data $(dir $(1))/soffice.data && \