You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
48 lines
1.1 KiB
8 years ago
|
import os
|
||
|
|
||
|
original_java_library = java_library
|
||
|
def java_library(
|
||
|
name,
|
||
|
deps=[],
|
||
|
**kwargs
|
||
|
):
|
||
|
compile_name = name + '_compile'
|
||
|
top_deps = []
|
||
|
|
||
|
if 'GENERATE_INFER_GENRULES' in os.environ:
|
||
|
export_srcs_name = name + '_export_srcs'
|
||
|
genrule(
|
||
|
name = export_srcs_name,
|
||
|
srcs = kwargs.get('srcs', []),
|
||
|
cmd = 'mkdir -p $OUT && cp -R $SRCDIR/* $OUT/',
|
||
|
out = 'src_copy',
|
||
|
)
|
||
|
infer_name = name + '_infer'
|
||
|
genrule(
|
||
|
name = infer_name,
|
||
|
cmd = ' '.join([
|
||
|
os.getenv('INFER_BIN', 'infer'),
|
||
|
'--results-dir', '$OUT',
|
||
|
'--classpath', '$(classpath :{})'.format(compile_name),
|
||
|
'--sourcepath', '$(location :{})'.format(export_srcs_name),
|
||
|
'--generated-classes', '$(location :{})'.format(compile_name),
|
||
|
'--', 'genrule'
|
||
|
]),
|
||
|
out = 'infer_out',
|
||
|
)
|
||
|
top_deps += [':' + infer_name, ':' + export_srcs_name]
|
||
|
|
||
|
original_java_library(
|
||
|
name=name,
|
||
|
exported_deps=[
|
||
|
':' + compile_name,
|
||
|
],
|
||
|
deps=top_deps,
|
||
|
visibility = kwargs.get('visibility', [])
|
||
|
)
|
||
|
original_java_library(
|
||
|
name=compile_name,
|
||
|
deps=deps,
|
||
|
**kwargs
|
||
|
)
|