[Libreoffice-commits] online.git: loleaflet/bundle.js.m4 loleaflet/Makefile.am

Henry Castro (via logerrit) logerrit at kemper.freedesktop.org
Tue Mar 3 17:21:31 UTC 2020


 loleaflet/Makefile.am  |   10 ++++++----
 loleaflet/bundle.js.m4 |   22 ++++++++++++++++++++++
 2 files changed, 28 insertions(+), 4 deletions(-)

New commits:
commit 175cbdb3f436981acac46bb6748545890712cb44
Author:     Henry Castro <hcastro at collabora.com>
AuthorDate: Fri Feb 21 15:59:23 2020 -0400
Commit:     Henry Castro <hcastro at collabora.com>
CommitDate: Tue Mar 3 18:21:10 2020 +0100

    loleaflet: makefile: use m4 to bundle all js files
    
    It is a flexible bundling of all javascript libraries and
    each platform (ANDROID, IOS, Desktop) can remove or add
    from node_modules or imported according to its requirements.
    
    Maybe in a near future some external libraries could be loaded
    on demand or lazy loading that are not necessary when the page
    is loading.
    
    Change-Id: Ief5d4973ab29a4fb3c4848c3e1653a24fff0da69
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89860
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Tested-by: Henry Castro <hcastro at collabora.com>
    Reviewed-by: Henry Castro <hcastro at collabora.com>

diff --git a/loleaflet/Makefile.am b/loleaflet/Makefile.am
index 2710f180e..968cfabbc 100644
--- a/loleaflet/Makefile.am
+++ b/loleaflet/Makefile.am
@@ -378,11 +378,13 @@ $(builddir)/dist/bundle.js: $(NODE_MODULES_JS_SRC) \
 	$(LOLEAFLET_PREFIX)/dist/loleaflet-src.js \
 	$(LOLEAFLET_LIBS_JS_SRC)
 	@echo "Uglify loleaflet js files..."
+	@m4 -PE -DL10N_IOS_ALL_JS=$(L10N_IOS_ALL_JS) \
+		-DNODE_MODULES_JS=$(subst $(SPACE),$(COMMA),$(NODE_MODULES_JS)) \
+		-DLOLEAFLET_LIBS_JS=$(subst $(SPACE),$(COMMA),$(LOLEAFLET_LIBS_JS_SRC)) \
+		-DLOLEAFLET_JS=$(builddir)/build/dist/loleaflet-src.js \
+		$(srcdir)/bundle.js.m4 > $(LOLEAFLET_PREFIX)/dist/bundle.js
 	NODE_PATH=$(abs_builddir)/node_modules $(NODE) node_modules/uglify-js/bin/uglifyjs \
-		$(L10N_IOS_ALL_JS) \
-		$(NODE_MODULES_JS) \
-		$(LOLEAFLET_LIBS_JS_SRC) \
-		$(builddir)/build/dist/loleaflet-src.js \
+		$(LOLEAFLET_PREFIX)/dist/bundle.js \
 		--output $@
 endif
 
diff --git a/loleaflet/bundle.js.m4 b/loleaflet/bundle.js.m4
new file mode 100644
index 000000000..b43b74589
--- /dev/null
+++ b/loleaflet/bundle.js.m4
@@ -0,0 +1,22 @@
+m4_changequote([,])m4_dnl
+m4_dnl# foreachq(x, `item_1, item_2, ..., item_n', stmt)
+m4_dnl# quoted list, alternate improved version
+m4_define([m4_foreachq],[m4_ifelse([$2],[],[],[m4_pushdef([$1])_$0([$1],[$3],[],$2)m4_popdef([$1])])])m4_dnl
+m4_define([_m4_foreachq],[m4_ifelse([$#],[3],[],[m4_define([$1],[$4])$2[]$0([$1],[$2],m4_shift(m4_shift(m4_shift($@))))])])m4_dnl
+m4_define([m4_trim],[m4_patsubst([$1],[^. ?\(.*\) .$])])m4_dnl
+m4_dnl
+m4_dnl files for IOS
+m4_ifelse(m4_trim(L10N_IOS_ALL_JS),[],[],[m4_syscmd([cat ]L10N_IOS_ALL_JS)])
+
+m4_dnl node_modules
+m4_foreachq([fileNode],[NODE_MODULES_JS],[
+m4_syscmd([cat ]fileNode)
+])
+
+m4_dnl imported libraries
+m4_foreachq([fileLib],[LOLEAFLET_LIBS_JS],[
+m4_syscmd([cat ]fileLib)
+])
+
+m4_dnl bundled loleaflet
+m4_syscmd([cat ]LOLEAFLET_JS)


More information about the Libreoffice-commits mailing list