gerrit/lib/codemirror/BUCK
David Ostrovsky 7fc13dca82 Buck: upgrade to recent version
This version fixes a critical bug [1] that prevents us from simplifying
bucklets intergration. In this version, Buck only allows defining new
rule functions in files included with include_defs, not actually
instantiating rules, so we need to reshuffle some rules.

After this commit [2] "$(macro ...)" syntax is preserved for buck
macros, we need to use a backslash to send commands directly to the
shell: "\$(macro ...)". It turns out this doesn't work yet, shell
backticks seem to work though [3].

[1] https://github.com/facebook/buck/issues/182
[2] d6f3252170
[3] https://github.com/facebook/buck/issues/212

Change-Id: Ie99757bafc626d4ac2c5a75a2983d91b0c4f6d24
2014-10-27 20:13:42 +00:00

122 lines
2.9 KiB
Python

include_defs('//lib/maven.defs')
include_defs('//lib/codemirror/cm3.defs')
include_defs('//lib/codemirror/closure.defs')
VERSION = '57e7ed7177'
SHA1 = 'd78bc5518707960647d0b8b85d9f1ac011b785d5'
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'
]
# https://code.google.com/p/closure-compiler/wiki/BinaryDownloads?tm=2
CLOSURE_VERSION = '20140407'
CLOSURE_COMPILER_URL = 'http://dl.google.com/closure-compiler/compiler-%s.zip' % CLOSURE_VERSION
COMPILER = 'compiler.jar'
CLOSURE_COMPILER_SHA1 = 'eeb02bfd45eb4a080b66dd423eaee4bdd1d674e9'
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,
)
java_binary(
name = 'js_minifier',
main_class = 'com.google.javascript.jscomp.CommandLineRunner',
deps = [':compiler-jar']
)
prebuilt_jar(
name = 'compiler-jar',
binary_jar = ':compiler',
)
genrule(
name = 'compiler',
cmd = 'unzip -p $(location :closure-compiler-zip) %s >$OUT' % COMPILER,
out = COMPILER,
)
genrule(
name = 'closure-compiler-zip',
cmd = '$(exe //tools:download_file)' +
' -o $OUT' +
' -u ' + CLOSURE_COMPILER_URL +
' -v ' + CLOSURE_COMPILER_SHA1,
out = 'closure-compiler.zip',
)