# https://code.google.com/p/closure-compiler/wiki/BinaryDownloads?tm=2 CLOSURE_VERSION = '20140407' CLOSURE_COMPILER_URL = 'http://dl.google.com/closure-compiler/compiler-%s.zip' % CLOSURE_VERSION COMPILER = 'compiler.jar' CLOSURE_COMPILER_SHA1 = 'eeb02bfd45eb4a080b66dd423eaee4bdd1d674e9' def js_minify( name, out, compiler_args = [], srcs = [], generated = []): cmd = ['$(exe :js_minifier) --js_output_file $OUT'] + compiler_args if srcs: cmd.append('$SRCS') if generated: cmd.extend(['$(location %s)' % n for n in generated]) genrule( name = name, cmd = ' '.join(cmd), srcs = srcs, out = out, ) java_binary( name = 'js_minifier', main_class = 'com.google.javascript.jscomp.CommandLineRunner', deps = [':compiler-jar'] ) prebuilt_jar( name = 'compiler-jar', binary_jar = ':compiler', ) genrule( name = 'compiler', cmd = 'unzip -p $(location :closure-compiler-zip) %s >$OUT' % COMPILER, out = COMPILER, ) genrule( name = 'closure-compiler-zip', cmd = '$(exe //tools:download_file)' + ' -o $OUT' + ' -u ' + CLOSURE_COMPILER_URL + ' -v ' + CLOSURE_COMPILER_SHA1, out = 'closure-compiler.zip', )