xref: /aosp_15_r20/external/tink/java_src/tools/jar_jar.bzl (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1*e7b1675dSTing-Kang Chang# Copyright 2020 Google LLC
2*e7b1675dSTing-Kang Chang#
3*e7b1675dSTing-Kang Chang# Licensed under the Apache License, Version 2.0 (the "License");
4*e7b1675dSTing-Kang Chang# you may not use this file except in compliance with the License.
5*e7b1675dSTing-Kang Chang# You may obtain a copy of the License at
6*e7b1675dSTing-Kang Chang#
7*e7b1675dSTing-Kang Chang# http://www.apache.org/licenses/LICENSE-2.0
8*e7b1675dSTing-Kang Chang#
9*e7b1675dSTing-Kang Chang# Unless required by applicable law or agreed to in writing, software
10*e7b1675dSTing-Kang Chang# distributed under the License is distributed on an "AS IS" BASIS,
11*e7b1675dSTing-Kang Chang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*e7b1675dSTing-Kang Chang# See the License for the specific language governing permissions and
13*e7b1675dSTing-Kang Chang# limitations under the License.
14*e7b1675dSTing-Kang Chang"""starlark rules for jarjar. See https://github.com/pantsbuild/jarjar
15*e7b1675dSTing-Kang Chang"""
16*e7b1675dSTing-Kang Chang
17*e7b1675dSTing-Kang Changdef _jar_jar_impl(ctx):
18*e7b1675dSTing-Kang Chang    ctx.actions.run(
19*e7b1675dSTing-Kang Chang        inputs = [ctx.file.rules, ctx.file.input_jar],
20*e7b1675dSTing-Kang Chang        outputs = [ctx.outputs.jar],
21*e7b1675dSTing-Kang Chang        executable = ctx.executable._jarjar,
22*e7b1675dSTing-Kang Chang        progress_message = "jarjar %s" % ctx.label,
23*e7b1675dSTing-Kang Chang        arguments = ["process", ctx.file.rules.path, ctx.file.input_jar.path, ctx.outputs.jar.path],
24*e7b1675dSTing-Kang Chang    )
25*e7b1675dSTing-Kang Chang
26*e7b1675dSTing-Kang Chang    return [
27*e7b1675dSTing-Kang Chang        JavaInfo(
28*e7b1675dSTing-Kang Chang            output_jar = ctx.outputs.jar,
29*e7b1675dSTing-Kang Chang            compile_jar = ctx.outputs.jar,
30*e7b1675dSTing-Kang Chang        ),
31*e7b1675dSTing-Kang Chang        DefaultInfo(files = depset([ctx.outputs.jar])),
32*e7b1675dSTing-Kang Chang    ]
33*e7b1675dSTing-Kang Chang
34*e7b1675dSTing-Kang Changjar_jar = rule(
35*e7b1675dSTing-Kang Chang    implementation = _jar_jar_impl,
36*e7b1675dSTing-Kang Chang    attrs = {
37*e7b1675dSTing-Kang Chang        "input_jar": attr.label(allow_single_file = True),
38*e7b1675dSTing-Kang Chang        "rules": attr.label(allow_single_file = True),
39*e7b1675dSTing-Kang Chang        "_jarjar": attr.label(executable = True, cfg = "exec", default = Label("//tools:jarjar")),
40*e7b1675dSTing-Kang Chang    },
41*e7b1675dSTing-Kang Chang    outputs = {
42*e7b1675dSTing-Kang Chang        "jar": "%{name}.jar",
43*e7b1675dSTing-Kang Chang    },
44*e7b1675dSTing-Kang Chang    provides = [JavaInfo],
45*e7b1675dSTing-Kang Chang)
46