@@ -70,12 +70,9 @@ def _add_resources_cmd(ctx):
7070 res_cmd .extend ([line ])
7171 return "" .join (res_cmd )
7272
73- def _build_nosrc_jar (ctx , buildijar ):
73+ def _build_nosrc_jar (ctx ):
7474 resources = _add_resources_cmd (ctx )
7575 ijar_cmd = ""
76- if buildijar :
77- ijar_cmd = "\n cp {jar_output} {ijar_output}\n " .format (
78- jar_output = ctx .outputs .jar .path , ijar_output = ctx .outputs .ijar .path )
7976
8077 # this ensures the file is not empty
8178 resources += "META-INF/MANIFEST.MF=%s\n " % ctx .outputs .manifest .path
@@ -97,8 +94,6 @@ touch {statsfile}
9794 )
9895
9996 outs = [ctx .outputs .jar , ctx .outputs .statsfile ]
100- if buildijar :
101- outs .extend ([ctx .outputs .ijar ])
10297
10398 inputs = ctx .files .resources + [
10499 ctx .outputs .manifest , ctx .executable ._zipper , zipper_arg_path
@@ -132,31 +127,11 @@ def _expand_location(ctx, flags):
132127def _join_path (args , sep = "," ):
133128 return sep .join ([f .path for f in args ])
134129
135- def compile_scala (ctx ,
136- target_label ,
137- output ,
138- manifest ,
139- statsfile ,
140- sources ,
141- cjars ,
142- all_srcjars ,
143- buildijar ,
144- transitive_compile_jars ,
145- plugins ,
146- resource_strip_prefix ,
147- resources ,
148- resource_jars ,
149- labels ,
150- in_scalacopts ,
151- print_compile_time ,
152- expect_java_output ,
153- scalac_jvm_flags = []):
154- ijar_output_path = ""
155- ijar_cmd_path = ""
156- if buildijar :
157- ijar_output_path = ctx .outputs .ijar .path
158- ijar_cmd_path = ctx .executable ._ijar .path
159-
130+ def compile_scala (ctx , target_label , output , manifest , statsfile , sources ,
131+ cjars , all_srcjars , transitive_compile_jars , plugins ,
132+ resource_strip_prefix , resources , resource_jars , labels ,
133+ in_scalacopts , print_compile_time , expect_java_output ,
134+ scalac_jvm_flags ):
160135 # look for any plugins:
161136 plugins = _collect_plugin_paths (plugins )
162137 dependency_analyzer_plugin_jars = []
@@ -204,10 +179,7 @@ CurrentTarget: {current_target}
204179 scalac_args = """
205180Classpath: {cp}
206181ClasspathResourceSrcs: {classpath_resource_src}
207- EnableIjar: {enableijar}
208182Files: {files}
209- IjarCmdPath: {ijar_cmd_path}
210- IjarOutput: {ijar_out}
211183JarOutput: {out}
212184Manifest: {manifest}
213185Plugins: {plugin_arg}
@@ -232,9 +204,6 @@ StatsfileOutput: {statsfile_output}
232204 cp = compiler_classpath ,
233205 classpath_resource_src = _join_path (classpath_resources ),
234206 files = _join_path (sources ),
235- enableijar = buildijar ,
236- ijar_out = ijar_output_path ,
237- ijar_cmd_path = ijar_cmd_path ,
238207 srcjars = _join_path (all_srcjars .to_list ()),
239208 # the resource paths need to be aligned in order
240209 resource_src = "," .join ([f .path for f in resources ]),
@@ -254,12 +223,10 @@ StatsfileOutput: {statsfile_output}
254223 output = argfile , content = scalac_args + optional_scalac_args )
255224
256225 outs = [output , statsfile ]
257- if buildijar :
258- outs .extend ([ctx .outputs .ijar ])
259- ins = (
260- compiler_classpath_jars .to_list () + all_srcjars .to_list () + list (sources )
261- + plugins_list + dependency_analyzer_plugin_jars + classpath_resources +
262- resources + resource_jars + [manifest , ctx .executable ._ijar , argfile ])
226+ ins = (compiler_classpath_jars .to_list () + all_srcjars .to_list () +
227+ list (sources ) + plugins_list + dependency_analyzer_plugin_jars +
228+ classpath_resources + resources + resource_jars + [manifest , argfile ])
229+
263230 ctx .actions .run (
264231 inputs = ins ,
265232 outputs = outs ,
@@ -334,7 +301,7 @@ def _compile_or_empty(ctx, manifest, jars, srcjars, buildijar,
334301 implicit_junit_deps_needed_for_java_compilation ):
335302 # We assume that if a srcjar is present, it is not empty
336303 if len (ctx .files .srcs ) + len (srcjars .to_list ()) == 0 :
337- _build_nosrc_jar (ctx , buildijar )
304+ _build_nosrc_jar (ctx )
338305 # no need to build ijar when empty
339306 return struct (
340307 ijar = ctx .outputs .jar ,
@@ -355,28 +322,30 @@ def _compile_or_empty(ctx, manifest, jars, srcjars, buildijar,
355322 f for f in ctx .files .srcs if f .basename .endswith (_scala_extension )
356323 ] + java_srcs
357324 compile_scala (ctx , ctx .label , ctx .outputs .jar , manifest ,
358- ctx .outputs .statsfile , sources , jars , all_srcjars , buildijar ,
325+ ctx .outputs .statsfile , sources , jars , all_srcjars ,
359326 transitive_compile_jars , ctx .attr .plugins ,
360327 ctx .attr .resource_strip_prefix , ctx .files .resources ,
361328 ctx .files .resource_jars , jars2labels , ctx .attr .scalacopts ,
362329 ctx .attr .print_compile_time , ctx .attr .expect_java_output ,
363330 ctx .attr .scalac_jvm_flags )
364- # compile the java now
365- if buildijar :
366- scala_output = ctx .outputs .ijar
367- else :
368- scala_output = ctx .outputs .jar
369- java_jar = try_to_compile_java_jar (
370- ctx , scala_output , all_srcjars , java_srcs ,
371- implicit_junit_deps_needed_for_java_compilation )
372331
373- ijar = None
332+ # build ijar if needed
374333 if buildijar :
375- ijar = ctx .outputs .ijar
334+ ijar = java_common .run_ijar (
335+ ctx .actions ,
336+ jar = ctx .outputs .jar ,
337+ target_label = ctx .label ,
338+ java_toolchain = ctx .attr ._java_toolchain )
376339 else :
377340 # macro code needs to be available at compile-time,
378341 # so set ijar == jar
379342 ijar = ctx .outputs .jar
343+
344+ # compile the java now
345+ java_jar = try_to_compile_java_jar (
346+ ctx , ijar , all_srcjars , java_srcs ,
347+ implicit_junit_deps_needed_for_java_compilation )
348+
380349 full_jars = [ctx .outputs .jar ]
381350 ijars = [ijar ]
382351 if java_jar :
0 commit comments