include_defs('//lib/maven.defs') include_defs('//lib/codemirror/cm3.defs') include_defs('//lib/codemirror/closure.defs') VERSION = '57e7ed7177' SHA1 = 'd78bc5518707960647d0b8b85d9f1ac011b785d5' 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' ] # 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' 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, ) 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', )