1
1
load ("//scala:scala.bzl" , "scala_binary" , "scala_library" )
2
2
3
3
def jmh_repositories ():
4
- native .maven_jar (
5
- name = "io_bazel_rules_scala_org_openjdk_jmh_jmh_core" ,
6
- artifact = "org.openjdk.jmh:jmh-core:1.20" ,
7
- sha1 = "5f9f9839bda2332e9acd06ce31ad94afa7d6d447" ,
8
- )
9
- native .bind (
10
- name = ' io_bazel_rules_scala/dependency/jmh/jmh_core' ,
11
- actual = ' @io_bazel_rules_scala_org_openjdk_jmh_jmh_core//jar' ,
12
- )
13
- native .maven_jar (
14
- name = "io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm" ,
15
- artifact = "org.openjdk.jmh:jmh-generator-asm:1.20" ,
16
- sha1 = "3c43040e08ae68905657a375e669f11a7352f9db" ,
17
- )
18
- native .bind (
19
- name = ' io_bazel_rules_scala/dependency/jmh/jmh_generator_asm' ,
20
- actual = ' @io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm//jar' ,
21
- )
22
- native .maven_jar (
23
- name = "io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_reflection" ,
24
- artifact = "org.openjdk.jmh:jmh-generator-reflection:1.20" ,
25
- sha1 = "f2154437b42426a48d5dac0b3df59002f86aed26" ,
26
- )
27
- native .bind (
28
- name = ' io_bazel_rules_scala/dependency/jmh/jmh_generator_reflection' ,
29
- actual =
30
- ' @io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_reflection//jar' ,
31
- )
32
- native .maven_jar (
33
- name = "io_bazel_rules_scala_org_ows2_asm_asm" ,
34
- artifact = "org.ow2.asm:asm:6.1.1" ,
35
- sha1 = "264754515362d92acd39e8d40395f6b8dee7bc08" ,
36
- )
37
- native .bind (
38
- name = "io_bazel_rules_scala/dependency/jmh/org_ows2_asm_asm" ,
39
- actual = ' @io_bazel_rules_scala_org_ows2_asm_asm//jar' ,
40
- )
41
- native .maven_jar (
42
- name = "io_bazel_rules_scala_net_sf_jopt_simple_jopt_simple" ,
43
- artifact = "net.sf.jopt-simple:jopt-simple:5.0.3" ,
44
- sha1 = "cdd846cfc4e0f7eefafc02c0f5dce32b9303aa2a" ,
45
- )
46
- native .bind (
47
- name =
48
- "io_bazel_rules_scala/dependency/jmh/net_sf_jopt_simple_jopt_simple" ,
49
- actual = ' @io_bazel_rules_scala_net_sf_jopt_simple_jopt_simple//jar' ,
50
- )
51
- native .maven_jar (
52
- name = "io_bazel_rules_scala_org_apache_commons_commons_math3" ,
53
- artifact = "org.apache.commons:commons-math3:3.6.1" ,
54
- sha1 = "e4ba98f1d4b3c80ec46392f25e094a6a2e58fcbf" ,
55
- )
56
- native .bind (
57
- name =
58
- "io_bazel_rules_scala/dependency/jmh/org_apache_commons_commons_math3" ,
59
- actual = ' @io_bazel_rules_scala_org_apache_commons_commons_math3//jar' ,
60
- )
4
+ native .maven_jar (
5
+ name = "io_bazel_rules_scala_org_openjdk_jmh_jmh_core" ,
6
+ artifact = "org.openjdk.jmh:jmh-core:1.20" ,
7
+ sha1 = "5f9f9839bda2332e9acd06ce31ad94afa7d6d447" ,
8
+ )
9
+ native .bind (
10
+ name = " io_bazel_rules_scala/dependency/jmh/jmh_core" ,
11
+ actual = " @io_bazel_rules_scala_org_openjdk_jmh_jmh_core//jar" ,
12
+ )
13
+ native .maven_jar (
14
+ name = "io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm" ,
15
+ artifact = "org.openjdk.jmh:jmh-generator-asm:1.20" ,
16
+ sha1 = "3c43040e08ae68905657a375e669f11a7352f9db" ,
17
+ )
18
+ native .bind (
19
+ name = " io_bazel_rules_scala/dependency/jmh/jmh_generator_asm" ,
20
+ actual = " @io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm//jar" ,
21
+ )
22
+ native .maven_jar (
23
+ name = "io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_reflection" ,
24
+ artifact = "org.openjdk.jmh:jmh-generator-reflection:1.20" ,
25
+ sha1 = "f2154437b42426a48d5dac0b3df59002f86aed26" ,
26
+ )
27
+ native .bind (
28
+ name = " io_bazel_rules_scala/dependency/jmh/jmh_generator_reflection" ,
29
+ actual =
30
+ " @io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_reflection//jar" ,
31
+ )
32
+ native .maven_jar (
33
+ name = "io_bazel_rules_scala_org_ows2_asm_asm" ,
34
+ artifact = "org.ow2.asm:asm:6.1.1" ,
35
+ sha1 = "264754515362d92acd39e8d40395f6b8dee7bc08" ,
36
+ )
37
+ native .bind (
38
+ name = "io_bazel_rules_scala/dependency/jmh/org_ows2_asm_asm" ,
39
+ actual = " @io_bazel_rules_scala_org_ows2_asm_asm//jar" ,
40
+ )
41
+ native .maven_jar (
42
+ name = "io_bazel_rules_scala_net_sf_jopt_simple_jopt_simple" ,
43
+ artifact = "net.sf.jopt-simple:jopt-simple:5.0.3" ,
44
+ sha1 = "cdd846cfc4e0f7eefafc02c0f5dce32b9303aa2a" ,
45
+ )
46
+ native .bind (
47
+ name =
48
+ "io_bazel_rules_scala/dependency/jmh/net_sf_jopt_simple_jopt_simple" ,
49
+ actual = " @io_bazel_rules_scala_net_sf_jopt_simple_jopt_simple//jar" ,
50
+ )
51
+ native .maven_jar (
52
+ name = "io_bazel_rules_scala_org_apache_commons_commons_math3" ,
53
+ artifact = "org.apache.commons:commons-math3:3.6.1" ,
54
+ sha1 = "e4ba98f1d4b3c80ec46392f25e094a6a2e58fcbf" ,
55
+ )
56
+ native .bind (
57
+ name =
58
+ "io_bazel_rules_scala/dependency/jmh/org_apache_commons_commons_math3" ,
59
+ actual = " @io_bazel_rules_scala_org_apache_commons_commons_math3//jar" ,
60
+ )
61
61
62
62
def _scala_construct_runtime_classpath (deps ):
63
- scala_targets = [d .scala for d in deps if hasattr (d , "scala" )]
64
- java_targets = [d .java for d in deps if hasattr (d , "java" )]
65
- files = []
66
- for scala in scala_targets :
67
- files .append (scala .transitive_runtime_jars )
68
- for java in java_targets :
69
- files .append (java .transitive_runtime_deps )
70
- return depset (transitive = files )
63
+ scala_targets = [d .scala for d in deps if hasattr (d , "scala" )]
64
+ java_targets = [d .java for d in deps if hasattr (d , "java" )]
65
+ files = []
66
+ for scala in scala_targets :
67
+ files .append (scala .transitive_runtime_jars )
68
+ for java in java_targets :
69
+ files .append (java .transitive_runtime_deps )
70
+ return depset (transitive = files )
71
71
72
72
def _scala_generate_benchmark (ctx ):
73
- class_jar = ctx .attr .src .scala .outputs .class_jar
74
- classpath = _scala_construct_runtime_classpath ([ctx .attr .src ])
75
- ctx .actions .run (
76
- outputs = [ctx .outputs .src_jar , ctx .outputs .resource_jar ],
77
- inputs = depset ([class_jar ], transitive = [classpath ]),
78
- executable = ctx .executable ._generator ,
79
- arguments = [ctx .attr .generator_type ] + [
80
- f .path
81
- for f in [class_jar , ctx .outputs .src_jar , ctx .outputs .resource_jar ] +
82
- classpath .to_list ()
83
- ],
84
- progress_message = "Generating benchmark code for %s" % ctx .label ,
85
- )
73
+ class_jar = ctx .attr .src .scala .outputs .class_jar
74
+ classpath = _scala_construct_runtime_classpath ([ctx .attr .src ])
75
+ ctx .actions .run (
76
+ outputs = [ctx .outputs .src_jar , ctx .outputs .resource_jar ],
77
+ inputs = depset ([class_jar ], transitive = [classpath ]),
78
+ executable = ctx .executable ._generator ,
79
+ arguments = [ctx .attr .generator_type ] + [
80
+ f .path
81
+ for f in [class_jar , ctx .outputs .src_jar , ctx .outputs .resource_jar ] +
82
+ classpath .to_list ()
83
+ ],
84
+ progress_message = "Generating benchmark code for %s" % ctx .label ,
85
+ )
86
86
87
87
scala_generate_benchmark = rule (
88
88
implementation = _scala_generate_benchmark ,
89
89
attrs = {
90
90
"src" : attr .label (allow_single_file = True , mandatory = True ),
91
91
"generator_type" : attr .string (
92
- default = 'reflection' , mandatory = False ),
92
+ default = "reflection" ,
93
+ mandatory = False ,
94
+ ),
93
95
"_generator" : attr .label (
94
96
executable = True ,
95
97
cfg = "host" ,
96
98
default = Label (
97
- "//src/scala/io/bazel/rules_scala/jmh_support:benchmark_generator"
98
- ))
99
+ "//src/scala/io/bazel/rules_scala/jmh_support:benchmark_generator" ,
100
+ ),
101
+ ),
99
102
},
100
103
outputs = {
101
104
"src_jar" : "%{name}.srcjar" ,
@@ -104,48 +107,51 @@ scala_generate_benchmark = rule(
104
107
)
105
108
106
109
def scala_benchmark_jmh (** kw ):
107
- name = kw ["name" ]
108
- deps = kw .get ("deps" , [])
109
- srcs = kw ["srcs" ]
110
- generator_type = kw .get ("generator_type" , "reflection" )
111
- lib = "%s_generator" % name
112
- scalacopts = kw .get ("scalacopts" , [])
113
- main_class = kw .get ("main_class" , "org.openjdk.jmh.Main" )
110
+ name = kw ["name" ]
111
+ deps = kw .get ("deps" , [])
112
+ srcs = kw ["srcs" ]
113
+ generator_type = kw .get ("generator_type" , "reflection" )
114
+ lib = "%s_generator" % name
115
+ scalacopts = kw .get ("scalacopts" , [])
116
+ main_class = kw .get ("main_class" , "org.openjdk.jmh.Main" )
114
117
115
- scala_library (
116
- name = lib ,
117
- srcs = srcs ,
118
- deps = deps + [
119
- "//external:io_bazel_rules_scala/dependency/jmh/jmh_core" ,
120
- ],
121
- scalacopts = scalacopts ,
122
- resources = kw .get ("resources" , []),
123
- resource_jars = kw .get ("resource_jars" , []),
124
- visibility = ["//visibility:public" ],
125
- unused_dependency_checker_mode = "off" ,
126
- )
118
+ scala_library (
119
+ name = lib ,
120
+ srcs = srcs ,
121
+ deps = deps + [
122
+ "//external:io_bazel_rules_scala/dependency/jmh/jmh_core" ,
123
+ ],
124
+ scalacopts = scalacopts ,
125
+ resources = kw .get ("resources" , []),
126
+ resource_jars = kw .get ("resource_jars" , []),
127
+ visibility = ["//visibility:public" ],
128
+ unused_dependency_checker_mode = "off" ,
129
+ )
127
130
128
- codegen = name + "_codegen"
129
- scala_generate_benchmark (
130
- name = codegen , src = lib , generator_type = generator_type )
131
- compiled_lib = name + "_compiled_benchmark_lib"
132
- scala_library (
133
- name = compiled_lib ,
134
- srcs = ["%s.srcjar" % codegen ],
135
- deps = deps + [
136
- "//external:io_bazel_rules_scala/dependency/jmh/jmh_core" ,
137
- lib ,
138
- ],
139
- resource_jars = ["%s_resources.jar" % codegen ],
140
- unused_dependency_checker_mode = "off" ,
141
- )
142
- scala_binary (
143
- name = name ,
144
- deps = [
145
- "//external:io_bazel_rules_scala/dependency/jmh/net_sf_jopt_simple_jopt_simple" ,
146
- "//external:io_bazel_rules_scala/dependency/jmh/org_apache_commons_commons_math3" ,
147
- compiled_lib ,
148
- ],
149
- main_class = main_class ,
150
- unused_dependency_checker_mode = "off" ,
151
- )
131
+ codegen = name + "_codegen"
132
+ scala_generate_benchmark (
133
+ name = codegen ,
134
+ src = lib ,
135
+ generator_type = generator_type ,
136
+ )
137
+ compiled_lib = name + "_compiled_benchmark_lib"
138
+ scala_library (
139
+ name = compiled_lib ,
140
+ srcs = ["%s.srcjar" % codegen ],
141
+ deps = deps + [
142
+ "//external:io_bazel_rules_scala/dependency/jmh/jmh_core" ,
143
+ lib ,
144
+ ],
145
+ resource_jars = ["%s_resources.jar" % codegen ],
146
+ unused_dependency_checker_mode = "off" ,
147
+ )
148
+ scala_binary (
149
+ name = name ,
150
+ deps = [
151
+ "//external:io_bazel_rules_scala/dependency/jmh/net_sf_jopt_simple_jopt_simple" ,
152
+ "//external:io_bazel_rules_scala/dependency/jmh/org_apache_commons_commons_math3" ,
153
+ compiled_lib ,
154
+ ],
155
+ main_class = main_class ,
156
+ unused_dependency_checker_mode = "off" ,
157
+ )
0 commit comments