xref: /aosp_15_r20/build/soong/genrule/Android.bp (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1package {
2    default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
5bootstrap_go_package {
6    name: "soong-genrule",
7    pkgPath: "android/soong/genrule",
8    deps: [
9        "blueprint",
10        "blueprint-pathtools",
11        "sbox_proto",
12        "soong",
13        "soong-android",
14        "soong-shared",
15    ],
16    srcs: [
17        "allowlists.go",
18        "genrule.go",
19        "locations.go",
20    ],
21    testSrcs: [
22        "genrule_test.go",
23    ],
24    pluginFor: ["soong_build"],
25    // Used by plugins
26    visibility: ["//visibility:public"],
27}
28
29genrule {
30    name: "nsjail_genrule_test_input",
31    cmd: "echo nsjail_genrule_test_input > $(out)",
32    out: ["nsjail_genrule_test_input.txt"],
33}
34
35// Pseudo-test that's run on checkbuilds to verify consistent directory
36// structure for genrules using sbox or nsjail.
37genrule_defaults {
38    name: "nsjail_genrule_test_gen_defaults",
39    // verify both relative paths and its contents
40    cmd: "(echo $(out) $(genDir) && sha256sum " +
41        "$(location get_clang_version) " +
42        "$(location py3-cmd) " +
43        "$(location genrule.go) " +
44        "$(location :nsjail_genrule_test_input) " +
45        "$(locations *.go)) | sed 's@\\./@@g' > $(out)",
46    tools: [
47        "get_clang_version", // random tool
48        "py3-cmd", // random prebuilt tool
49    ],
50    tool_files: ["genrule.go"], // random local file
51    srcs: [
52        ":nsjail_genrule_test_input", // random OutputFileProducer
53        "*.go", // random glob
54    ],
55    out: ["nsjail_genrule_test.txt"],
56}
57
58genrule {
59    name: "nsjail_genrule_test_gen_without_nsjail",
60    defaults: ["nsjail_genrule_test_gen_defaults"],
61}
62
63genrule {
64    name: "nsjail_genrule_test_gen_with_nsjail",
65    defaults: ["nsjail_genrule_test_gen_defaults"],
66    use_nsjail: true,
67}
68
69genrule {
70    name: "nsjail_genrule_test",
71    srcs: [
72        ":nsjail_genrule_test_gen_without_nsjail",
73        ":nsjail_genrule_test_gen_with_nsjail",
74    ],
75    cmd: "diff $(in) > $(out)",
76    out: ["nsjail_genrule_test"],
77}
78