33
44load ("//java:providers/JavaDependencyInfo.bzl" , "JavaDependencyInfo" )
55
6- def singleton_java_dependency_info ( jar ):
7- '''Returns a `JavaDependencyInfo` with just the given `jar` as a CT/ RT dep .
6+ def jar_list_java_dependency_info ( jars ):
7+ '''A `JavaDependencyInfo` with just the JAR `File` list as the CT & RT deps .
88 '''
9- singleton_depset = depset (direct = [ jar ] )
9+ jar_list_depset = depset (direct = jars )
1010 return JavaDependencyInfo (
11- run_time_class_path_jars = singleton_depset ,
12- compile_time_class_path_jars = singleton_depset ,
11+ compile_time_class_path_jars = jar_list_depset ,
12+ run_time_class_path_jars = jar_list_depset ,
1313 )
1414
15+ def make_standard_java_target_java_dependency_info (ctx , output_jar ):
16+ '''A `JavaDependencyInfo` with `output_jar` at CT & transitive deps at RT.
17+
18+ Args:
19+ ctx: The `ctx` object of this Java target.
20+ output_jar: The JAR `File` created by this Java target.
21+ Return:
22+ `JavaDependencyInfo`
23+ '''
24+ deps = []
25+ for dep in ctx .attr .deps :
26+ dep_info = dep [JavaDependencyInfo ]
27+ deps .append (dep_info .run_time_class_path_jars )
28+
29+ return JavaDependencyInfo (
30+ compile_time_class_path_jars = depset (direct = [output_jar ]),
31+ run_time_class_path_jars = depset (
32+ direct = [output_jar ],
33+ transitive = deps ,
34+ ),
35+ )
36+
37+
38+
1539def make_legacy_java_info (java_compilation_info , deps ):
1640 '''Makes a `JavaInfo` like the given args.
1741
@@ -23,4 +47,4 @@ def make_legacy_java_info(java_compilation_info, deps):
2347 output_jar = java_compilation_info .class_files_output_jar ,
2448 compile_jar = java_compilation_info .class_files_output_jar ,
2549 deps = [dep [JavaInfo ] for dep in deps ],
26- )
50+ )
0 commit comments