|  | 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(), | 
|  | srcs = [], | 
|  | out = VER, | 
|  | ) | 
|  |  | 
|  | java_test( | 
|  | name = 'client_tests', | 
|  | srcs = glob(['src/test/java/**/*.java']), | 
|  | deps = [ | 
|  | ':client', | 
|  | '//lib:junit', | 
|  | ], | 
|  | source_under_test = [':client'], | 
|  | ) |