|  | include_defs('//lib/maven.defs') | 
|  | include_defs('//lib/codemirror/cm.defs') | 
|  |  | 
|  | VERSION = '5.17.0' | 
|  | TOP = 'META-INF/resources/webjars/codemirror/%s' % VERSION | 
|  | TOP_MINIFIED = 'META-INF/resources/webjars/codemirror-minified/%s' % VERSION | 
|  |  | 
|  | maven_jar( | 
|  | name = 'codemirror-minified', | 
|  | id = 'org.webjars.npm:codemirror-minified:' + VERSION, | 
|  | sha1 = '05ad901fc9be67eb7ba8997d896488093deb898e', | 
|  | attach_source = False, | 
|  | license = 'codemirror-minified', | 
|  | visibility = [], | 
|  | ) | 
|  |  | 
|  | maven_jar( | 
|  | name = 'codemirror-original', | 
|  | id = 'org.webjars.npm:codemirror:' + VERSION, | 
|  | sha1 = 'c025b8d9aca1061e26d1fa482bea0ecea1412e85', | 
|  | attach_source = False, | 
|  | license = 'codemirror-original', | 
|  | visibility = [], | 
|  | ) | 
|  |  | 
|  | DIFF_MATCH_PATCH_VERSION = '20121119-1' | 
|  | DIFF_MATCH_PATCH_TOP = ('META-INF/resources/webjars/google-diff-match-patch/%s' | 
|  | % DIFF_MATCH_PATCH_VERSION) | 
|  |  | 
|  | maven_jar( | 
|  | name = 'diff-match-patch', | 
|  | id = 'org.webjars:google-diff-match-patch:' + DIFF_MATCH_PATCH_VERSION, | 
|  | sha1 = '0cf1782dbcb8359d95070da9176059a5a9d37709', | 
|  | license = 'Apache2.0', | 
|  | attach_source = False, | 
|  | ) | 
|  |  | 
|  | for archive, suffix, top in [('codemirror-original', '', TOP), ('codemirror-minified', '_r', TOP_MINIFIED)]: | 
|  | # Main JavaScript and addons | 
|  | genrule( | 
|  | name = 'cm' + suffix, | 
|  | cmd = ';'.join([ | 
|  | "echo '/** @license' >$OUT", | 
|  | 'unzip -p $(location :%s) %s/LICENSE >>$OUT' % (archive, top), | 
|  | "echo '*/' >>$OUT", | 
|  | ] + | 
|  | ['unzip -p $(location :%s) %s/%s >>$OUT' % (archive, top, n) for n in CM_JS] + | 
|  | ['unzip -p $(location :%s) %s/addon/%s >>$OUT' % (archive, top, n) | 
|  | for n in CM_ADDONS] | 
|  | ), | 
|  | out = 'cm%s.js' % suffix, | 
|  | ) | 
|  |  | 
|  | # Main CSS | 
|  | genrule( | 
|  | name = 'css' + suffix, | 
|  | cmd = ';'.join([ | 
|  | "echo '/** @license' >$OUT", | 
|  | 'unzip -p $(location :%s) %s/LICENSE >>$OUT' % (archive, top), | 
|  | "echo '*/' >>$OUT", | 
|  | ] + | 
|  | ['unzip -p $(location :%s) %s/%s >>$OUT' % (archive, top, n) | 
|  | for n in CM_CSS] | 
|  | ), | 
|  | out = 'cm%s.css' % suffix, | 
|  | ) | 
|  |  | 
|  | # Modes | 
|  | for n in CM_MODES: | 
|  | genrule ( | 
|  | name = 'mode_%s%s' % (n, suffix), | 
|  | cmd = ';'.join([ | 
|  | "echo '/** @license' >$OUT", | 
|  | 'unzip -p $(location :%s) %s/LICENSE >>$OUT' % (archive, top), | 
|  | "echo '*/' >>$OUT", | 
|  | 'unzip -p $(location :%s) %s/mode/%s/%s.js >>$OUT' % (archive, top, n, n), | 
|  | ] | 
|  | ), | 
|  | out = 'mode_%s%s.js' % (n, suffix), | 
|  | ) | 
|  |  | 
|  | # Themes | 
|  | for n in CM_THEMES: | 
|  | genrule( | 
|  | name = 'theme_%s%s' % (n, suffix), | 
|  | cmd = ';'.join([ | 
|  | "echo '/** @license' >$OUT", | 
|  | 'unzip -p $(location :%s) %s/LICENSE >>$OUT' % (archive, top), | 
|  | "echo '*/' >>$OUT", | 
|  | 'unzip -p $(location :%s) %s/theme/%s.css >>$OUT' % (archive, top, n) | 
|  | ] | 
|  | ), | 
|  | out = 'theme_%s%s.css' % (n, suffix), | 
|  | ) | 
|  |  | 
|  | # Merge Addon bundled with diff-match-patch | 
|  | genrule( | 
|  | name = 'addon_merge%s' % suffix, | 
|  | cmd = ';'.join([ | 
|  | "echo '/** @license' >$OUT", | 
|  | 'unzip -p $(location :%s) %s/LICENSE >>$OUT' % (archive, top), | 
|  | "echo '*/\n' >>$OUT", | 
|  | "echo '// The google-diff-match-patch library is from https://google-diff-match-patch.googlecode.com/svn-history/r106/trunk/javascript/diff_match_patch.js\n' >> $OUT", | 
|  | "echo '/** @license' >>$OUT", | 
|  | 'cat $(location //lib:LICENSE-Apache2.0) >>$OUT', | 
|  | "echo '*/' >>$OUT", | 
|  | 'unzip -p $(location :diff-match-patch) %s/diff_match_patch.js >>$OUT' % DIFF_MATCH_PATCH_TOP, | 
|  | "echo ';' >> $OUT", | 
|  | 'unzip -p $(location :%s) %s/addon/merge/merge.js >>$OUT' % (archive, top) | 
|  | ] | 
|  | ), | 
|  | out = 'addon_merge%s.js' % suffix, | 
|  | ) | 
|  |  | 
|  | # Jar packaging | 
|  | genrule( | 
|  | name = 'jar' + suffix, | 
|  | cmd = ';'.join([ | 
|  | 'cd $TMP', | 
|  | 'mkdir -p net/codemirror/{addon,lib,mode,theme}', | 
|  | 'cp $(location :css%s) net/codemirror/lib/cm.css' % suffix, | 
|  | 'cp $(location :cm%s) net/codemirror/lib/cm.js' % suffix] | 
|  | + ['cp $(location :mode_%s%s) net/codemirror/mode/%s.js' % (n, suffix, n) | 
|  | for n in CM_MODES] | 
|  | + ['cp $(location :theme_%s%s) net/codemirror/theme/%s.css' % (n, suffix, n) | 
|  | for n in CM_THEMES] | 
|  | + ['cp $(location :addon_merge%s) net/codemirror/addon/merge_bundled.js' % suffix] | 
|  | + ['zip -qr $OUT net/codemirror/{addon,lib,mode,theme}']), | 
|  | out = 'codemirror%s.jar' % suffix, | 
|  | ) | 
|  |  | 
|  | prebuilt_jar( | 
|  | name = 'codemirror' + suffix, | 
|  | binary_jar = ':jar%s' % suffix, | 
|  | deps = [ | 
|  | ':jar' + suffix, | 
|  | '//lib:LICENSE-' + archive, | 
|  | ], | 
|  | visibility = ['PUBLIC'], | 
|  | ) | 
|  |  |