include_defs('//lib/maven.defs') include_defs('//lib/codemirror/cm.defs') include_defs('//lib/codemirror/closure.defs') REPO = MAVEN_CENTRAL VERSION = '5.0' SHA1 = '24982be364be130fd7b2930c41f7203b63dbd86c' if REPO == MAVEN_CENTRAL: URL = REPO + 'org/webjars/codemirror/%s/codemirror-%s.jar' % (VERSION, VERSION) TOP = 'META-INF/resources/webjars/codemirror/%s' % VERSION ZIP = 'codemirror-%s.jar' % VERSION else: URL = REPO + 'net/codemirror/codemirror-%s.zip' % VERSION TOP = 'codemirror-%s' % VERSION ZIP = 'codemirror-%s.zip' % VERSION CLOSURE_VERSION = 'v20141120' CLOSURE_COMPILER_ARGS = [ '--compilation_level SIMPLE_OPTIMIZATIONS', '--warning_level QUIET' ] genrule( name = 'css', cmd = ';'.join([ "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 CM_CSS] ), out = 'cm.css', ) for n in CM_THEMES: genrule( name = 'theme_%s' % n, cmd = ';'.join([ "echo '/** @license' >$OUT", 'unzip -p $(location :zip) %s/LICENSE >>$OUT' % TOP, "echo '*/' >>$OUT", 'unzip -p $(location :zip) %s/theme/%s.css >>$OUT' % (TOP, n) ] ), out = 'theme_%s.css' % n, ) genrule( name = 'cm-verbose', cmd = ';'.join([ "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 CM_JS] + ['unzip -p $(location :zip) %s/addon/%s >>$OUT' % (TOP, n) for n in CM_ADDONS] ), out = 'cm-verbose.js', ) js_minify( name = 'js', generated = [':cm-verbose'], compiler_args = CLOSURE_COMPILER_ARGS, out = 'cm.js' ) for n in CM_MODES: genrule ( name = 'mode_%s_src' % n, cmd = ';'.join([ "echo '/** @license' >$OUT", 'unzip -p $(location :zip) %s/LICENSE >>$OUT' % TOP, "echo '*/' >>$OUT", 'unzip -p $(location :zip) %s/mode/%s/%s.js >>$OUT' % (TOP, n, n), ]), out = 'mode_%s_src.js' %n, ) js_minify( name = 'mode_%s_js' % n, generated = [':mode_%s_src' % n], compiler_args = CLOSURE_COMPILER_ARGS, out = 'mode_%s.js' % n, ) prebuilt_jar( name = 'codemirror', binary_jar = ':jar', deps = [ ':jar', '//lib:LICENSE-codemirror', ], visibility = ['PUBLIC'], ) genrule( name = 'jar', cmd = ';'.join([ 'cd $TMP', 'mkdir -p net/codemirror/{lib,mode,theme}', 'cp $(location :css) net/codemirror/lib', 'cp $(location :js) net/codemirror/lib'] + ['cp $(location :mode_%s_js) net/codemirror/mode/%s.js' % (n, n) for n in CM_MODES] + ['cp $(location :theme_%s) net/codemirror/theme/%s.css' % (n, n) for n in CM_THEMES] + ['zip -qr $OUT net/codemirror/{lib,mode,theme}']), 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'] ) maven_jar( name = 'compiler-jar', id = 'com.google.javascript:closure-compiler:' + CLOSURE_VERSION, sha1 = '369618bf5a96f73e32655dc48919c0f97558d3b1', license = 'Apache2.0', deps = [ ':closure-compiler-externs', '//lib:args4j', '//lib:gson', '//lib:guava', '//lib:protobuf', ], visibility = [], ) maven_jar( name = 'closure-compiler-externs', id = 'com.google.javascript:closure-compiler-externs:' + CLOSURE_VERSION, sha1 = '247eff337e2737de43c8d963aaaef15bd8cda132', license = 'Apache2.0', visibility = [], )