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, )