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