
Latest version of buck is faster than the prior version used by Gerrit. No-op updates when loading a debug version of the UI now take only 1.804s on my laptop (previously 7s) and a draft UI compile is only 24.659s (previously 39s). The slow acceptance tests must now be excluded with `--exclude slow`. Buck changed the meaning of the -e option to be --emulator, which is unfortunately useful only for Android application developers. genrule() now needs to use $(exe) to reference the binary to run, offers $(location) to make it easier to find files in the build tree. The empty srcs array is no longer required for genrule(). Buck has determined it is sufficiently powerful with $(location) and deps that requiring srcs is unnecessary. Supporting .src.zip files in the srcs array of java_library() means Gerrit no longer needs to run a separate genrule() to extract files produced by ANTLR, or call javac inside of the BuckPrologCompiler support glue. Change-Id: Ib03042921a081b867a7aad0423bd45523e42917a
68 lines
1.5 KiB
Python
68 lines
1.5 KiB
Python
SRC = 'src/main/java/com/google/gerrit/'
|
|
VER = 'resources/com/google/gerrit/common/Version'
|
|
|
|
gwt_module(
|
|
name = 'client',
|
|
srcs = glob([SRC + 'common/**/*.java']),
|
|
gwtxml = SRC + 'Common.gwt.xml',
|
|
deps = [
|
|
'//gerrit-patch-jgit:client',
|
|
'//gerrit-prettify:client',
|
|
'//gerrit-reviewdb:client',
|
|
'//lib:gwtjsonrpc',
|
|
'//lib:gwtorm',
|
|
'//lib:jsr305',
|
|
'//lib/jgit:jgit',
|
|
],
|
|
visibility = ['PUBLIC'],
|
|
)
|
|
|
|
java_library(
|
|
name = 'server',
|
|
srcs = glob([SRC + 'common/**/*.java']),
|
|
deps = [
|
|
'//gerrit-patch-jgit:server',
|
|
'//gerrit-prettify:server',
|
|
'//gerrit-reviewdb:server',
|
|
'//lib:gwtjsonrpc',
|
|
'//lib:gwtorm',
|
|
'//lib:jsr305',
|
|
'//lib/jgit:jgit',
|
|
],
|
|
visibility = ['PUBLIC'],
|
|
)
|
|
|
|
java_library(
|
|
name = 'version',
|
|
resources = [genfile(VER)],
|
|
deps = [':git_describe'],
|
|
visibility = ['PUBLIC'],
|
|
)
|
|
|
|
# TODO(sop): Move git describe into an uncacheable genrule()
|
|
def git_describe():
|
|
import subprocess
|
|
cmd = ['git', 'describe', '--match', 'v[0-9].*', '--dirty']
|
|
p = subprocess.Popen(cmd, stdout = subprocess.PIPE)
|
|
v = p.communicate()[0].strip()
|
|
r = p.returncode
|
|
if r != 0:
|
|
raise subprocess.CalledProcessError(r, ' '.join(cmd))
|
|
return v
|
|
|
|
genrule(
|
|
name = 'git_describe',
|
|
cmd = 'mkdir -p $(dirname $OUT); echo "%s" >$OUT' % git_describe(),
|
|
out = VER,
|
|
)
|
|
|
|
java_test(
|
|
name = 'client_tests',
|
|
srcs = glob(['src/test/java/**/*.java']),
|
|
deps = [
|
|
':client',
|
|
'//lib:junit',
|
|
],
|
|
source_under_test = [':client'],
|
|
)
|