16
16
"JavaInfo" ,
17
17
)
18
18
load ("//kotlin/internal/jvm:associates.bzl" , _associate_utils = "associate_utils" )
19
- load ("//kotlin/internal/utils:sets.bzl" , _sets = "sets" )
20
19
21
20
def _java_info (target ):
22
21
return target [JavaInfo ] if JavaInfo in target else None
@@ -35,24 +34,30 @@ def _jvm_deps(ctx, toolchains, associate_deps, deps = [], deps_java_infos = [],
35
34
[_java_info (d ) for d in deps ]
36
35
)
37
36
37
+ direct_dep_jars = [associates .jars ] + [
38
+ d .compile_jars
39
+ for d in dep_infos
40
+ ]
41
+
38
42
# Reduced classpath, exclude transitive deps from compilation
39
43
if (toolchains .kt .experimental_prune_transitive_deps and
40
44
not "kt_experimental_prune_transitive_deps_incompatible" in ctx .attr .tags ):
41
- transitive = [
42
- d .compile_jars
43
- for d in dep_infos
44
- ]
45
+ transitive = direct_dep_jars
45
46
else :
46
- transitive = [
47
- d .compile_jars
48
- for d in dep_infos
49
- ] + [
47
+ transitive = direct_dep_jars + [
50
48
d .transitive_compile_time_jars
51
49
for d in dep_infos
52
50
]
53
51
54
- compile_depset_list = depset (transitive = transitive + [associates .jars ]).to_list ()
55
- compile_depset_list_filtered = [jar for jar in compile_depset_list if not _sets .contains (associates .abi_jar_set , jar )]
52
+ compile_depset_list_filtered = _associate_utils .filter_abi_associate_jar (transitive , associates )
53
+
54
+ if (toolchains .kt .experimental_prune_transitive_deps and
55
+ not "kt_experimental_prune_transitive_deps_incompatible" in ctx .attr .tags ):
56
+ # then compile_depset_list_filtered already contains just the compile jars
57
+ direct_depset_list_filtered = compile_depset_list_filtered
58
+ else :
59
+ # otherwise we need to create a list of compile jars with the associates abi jar replaced
60
+ direct_depset_list_filtered = _associate_utils .filter_abi_associate_jar (direct_dep_jars , associates )
56
61
57
62
return struct (
58
63
module_name = associates .module_name ,
@@ -61,6 +66,7 @@ def _jvm_deps(ctx, toolchains, associate_deps, deps = [], deps_java_infos = [],
61
66
associate_jars = associates .jars ,
62
67
compile_jars = depset (direct = compile_depset_list_filtered ),
63
68
runtime_deps = [_java_info (d ) for d in runtime_deps ],
69
+ direct_dep_jars = direct_depset_list_filtered ,
64
70
)
65
71
66
72
jvm_deps_utils = struct (
0 commit comments