xref: /aosp_15_r20/external/bazelbuild-rules_license/examples/manifest/BUILD (revision f578df4fd057ffe2023728444759535685631548)
1*f578df4fSJingwen Chenload(":android_mock.bzl", "android_binary", "android_library")
2*f578df4fSJingwen Chenload("@rules_license//tools:test_helpers.bzl", "golden_cmd_test")
3*f578df4fSJingwen Chen
4*f578df4fSJingwen Chen
5*f578df4fSJingwen Chen# These two rules today capture what an android_binary would look like.
6*f578df4fSJingwen Chen# This rule represents the Android specific code that displays licenses
7*f578df4fSJingwen Chen# on the display. Note that it does not depend on anything to get the
8*f578df4fSJingwen Chen# license contents; the implementation of these rules macros handle that
9*f578df4fSJingwen Chen# detail.
10*f578df4fSJingwen Chenandroid_library(
11*f578df4fSJingwen Chen    name = "licenses",
12*f578df4fSJingwen Chen    srcs = [
13*f578df4fSJingwen Chen        "license_display.sh",
14*f578df4fSJingwen Chen    ],
15*f578df4fSJingwen Chen    data = [
16*f578df4fSJingwen Chen      "@rules_license//distro:distro",
17*f578df4fSJingwen Chen    ],
18*f578df4fSJingwen Chen)
19*f578df4fSJingwen Chen
20*f578df4fSJingwen Chen# This captures how the application would be built. The dependencies of this
21*f578df4fSJingwen Chen# rule are crawled to identify third-party licenses in use. The macro definition
22*f578df4fSJingwen Chen# of this rule creates a graph to capture that process of identifying licenses,
23*f578df4fSJingwen Chen# building the licenses target, and finally invoking the "real" android_binary
24*f578df4fSJingwen Chen# rule to build the final output with the injected license content.
25*f578df4fSJingwen Chenandroid_binary(
26*f578df4fSJingwen Chen    name = "main",
27*f578df4fSJingwen Chen    srcs = ["main.sh"],
28*f578df4fSJingwen Chen    deps = [
29*f578df4fSJingwen Chen    ],
30*f578df4fSJingwen Chen    data = [
31*f578df4fSJingwen Chen        ":licenses",
32*f578df4fSJingwen Chen    ],
33*f578df4fSJingwen Chen)
34*f578df4fSJingwen Chen
35*f578df4fSJingwen Chengolden_cmd_test(
36*f578df4fSJingwen Chen    name = "main_test",
37*f578df4fSJingwen Chen    srcs = [],
38*f578df4fSJingwen Chen    cmd = "$(location :main)",
39*f578df4fSJingwen Chen    tools = [":main"],
40*f578df4fSJingwen Chen    golden = "main_golden.txt",
41*f578df4fSJingwen Chen)
42