Files
gerrit/gerrit-common/BUCK
Shawn Pearce 11d27c8ee8 Update Buck
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
2013-07-26 18:11:51 -07:00

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'],
)