From d9d054e2dba404637ffd1f5f50e3c896a4348ad2 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Tue, 4 Sep 2018 13:27:19 +0000 Subject: [PATCH] js.mk: Add support or specifying externs to closure-compiler Signed-off-by: Jan Lindemann --- make/js.mk | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/make/js.mk b/make/js.mk index a80f7f8f..c737c714 100644 --- a/make/js.mk +++ b/make/js.mk @@ -1,9 +1,15 @@ JAVA ?= /usr/bin/java -JS_MINIFY_EXE ?= $(JAVA) -jar /usr/share/java/closure-compiler.jar --compilation_level ADVANCED --strict_mode_input JS_MINIFY_FILTER_IN ?= sed 's/console\.[a-z]\+([^)]\+) *;//g' JS_LOCAL ?= $(wildcard *.js) JS_SRC ?= $(filter-out %.min.js,$(JS_LOCAL)) JS_GENERATED ?= $(patsubst %.js,%.min.js,$(JS_SRC)) +JS_EXTRA_EXTERNS ?= +JS_EXTERNS_DIRS ?= /opt/closure-compiler/share/externs +JS_EXTERNS ?= $(sort $(JS_EXTRA_EXTERNS) jquery-3.3.js) +JS_EXTERN_PATHS ?= $(wildcard $(foreach d,$(JS_EXTERNS_DIRS),$(addprefix $d/,$(JS_EXTERNS)))) +JS_MINIFY_OPTS ?= $(addprefix --externs ,$(JS_EXTERN_PATHS)) --compilation_level ADVANCED --strict_mode_input +JS_MINIFY_EXE ?= $(JAVA) -jar /usr/share/java/closure-compiler.jar +JS_MINIFY ?= $(JS_MINIFY_EXE) $(JS_MINIFY_OPTS) # This is not nice. It requires install-files to be included from elsewhere, # which is not obvious. OTOH, if it isn't, SOURCE_FILES doesn't do any harm, @@ -15,7 +21,7 @@ clean: minify.clean %.min.js: %.js cat $< | $(JS_MINIFY_FILTER_IN) > $@.filtered - $(JS_MINIFY_EXE) $@.filtered > $@.tmp + $(JS_MINIFY) $@.filtered > $@.tmp mv $@.tmp $@ minify.clean: