0369183e92
Extend the build tool chain to minify JavaScript from CodeMirror distribution. Currently SIMPLE_OPTIMIZATIONS mode is used, as ADVANCED_OPTIMIZATIONS doesn't seem to work. But even with simple mode the minification factor is: 393441:cm3-verbose.js 167971:cm3_minified.js And even more for language modes: 56029:perl-verbose.js 10122:perl-minified.js Disadvantage: Longer compilation time. In follow-up changes we may want to optimize it by disabling JS minification in development build. Change-Id: I24790e84484add4f02b3821cca4b69e62fde0c22
90 lines
2.1 KiB
Python
90 lines
2.1 KiB
Python
include_defs('//lib/maven.defs')
|
|
include_defs('//lib/codemirror/cm3.defs')
|
|
include_defs('//lib/codemirror/closure.defs')
|
|
|
|
VERSION = '28a638a984'
|
|
SHA1 = '68f8f136092a5965778186fb401a33be34cf73ed'
|
|
URL = GERRIT + 'net/codemirror/codemirror-%s.zip' % VERSION
|
|
|
|
ZIP = 'codemirror-%s.zip' % VERSION
|
|
TOP = 'codemirror-%s' % VERSION
|
|
|
|
CLOSURE_COMPILER_ARGS = [
|
|
'--compilation_level SIMPLE_OPTIMIZATIONS',
|
|
'--warning_level QUIET'
|
|
]
|
|
|
|
genrule(
|
|
name = 'css',
|
|
cmd = ';'.join([
|
|
':>$OUT',
|
|
"echo '/** @license' >>$OUT",
|
|
'unzip -p $(location :zip) %s/LICENSE >>$OUT' % TOP,
|
|
"echo '*/' >>$OUT",
|
|
] +
|
|
['unzip -p $(location :zip) %s/%s >>$OUT' % (TOP, n)
|
|
for n in CM3_CSS + CM3_THEMES]
|
|
),
|
|
deps = [':zip'],
|
|
out = 'cm3.css',
|
|
)
|
|
|
|
genrule(
|
|
name = 'cm3-verbose',
|
|
cmd = ';'.join([
|
|
':>$OUT',
|
|
"echo '/** @license' >>$OUT",
|
|
'unzip -p $(location :zip) %s/LICENSE >>$OUT' % TOP,
|
|
"echo '*/' >>$OUT",
|
|
] +
|
|
['unzip -p $(location :zip) %s/%s >>$OUT' % (TOP, n)
|
|
for n in CM3_JS]
|
|
),
|
|
deps = [':zip'],
|
|
out = 'cm3-verbose.js',
|
|
)
|
|
|
|
js_minify(
|
|
name = 'js',
|
|
generated = [':cm3-verbose'],
|
|
compiler_args = CLOSURE_COMPILER_ARGS,
|
|
out = 'cm3.js'
|
|
)
|
|
|
|
prebuilt_jar(
|
|
name = 'codemirror',
|
|
binary_jar = ':jar',
|
|
deps = ['//lib:LICENSE-codemirror'],
|
|
visibility = ['PUBLIC'],
|
|
)
|
|
|
|
genrule(
|
|
name = 'jar',
|
|
cmd = ';'.join([
|
|
'cd $TMP',
|
|
'unzip -q $(location :zip) %s' %
|
|
' '.join(['%s/mode/%s' % (TOP, n) for n in CM3_MODES]),
|
|
';'.join(['$(exe :js_minifier) ' +
|
|
' '.join(CLOSURE_COMPILER_ARGS) +
|
|
' --js_output_file %s/mode/%s.min --js %s/mode/%s'
|
|
% (TOP, n, TOP, n) for n in CM3_MODES]),
|
|
';'.join(['mv %s/mode/%s.min %s/mode/%s' % (TOP, n, TOP, n) for n in CM3_MODES]),
|
|
'mkdir net',
|
|
'mv %s net/codemirror' % TOP,
|
|
'mkdir net/codemirror/lib',
|
|
'cp $(location :css) net/codemirror/lib',
|
|
'cp $(location :js) net/codemirror/lib',
|
|
'zip -qr $OUT *'
|
|
]),
|
|
out = 'codemirror.jar',
|
|
)
|
|
|
|
genrule(
|
|
name = 'zip',
|
|
cmd = '$(exe //tools:download_file)' +
|
|
' -o $OUT' +
|
|
' -u ' + URL +
|
|
' -v ' + SHA1,
|
|
out = ZIP,
|
|
)
|