| include_defs('//lib/maven.defs') | |
| include_defs('//lib/codemirror/cm.defs') | |
| include_defs('//lib/codemirror/closure.defs') | |
| REPO = MAVEN_CENTRAL | |
| VERSION = '5.8' | |
| SHA1 = '1cbe267adf1da9659dae49253305649dae2391e9' | |
| 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 = [], | |
| ) |