| 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 = [], |
| ) |