blob: 1b0f99753ce61dc7f50c227a4dfeeef948b0e89e [file] [log] [blame]
Jeremy Meyer16c83af2024-07-26 16:21:49 -07001// Copyright (C) 2024 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16 // See: http://go/android-license-faq
17 // A large-scale-change added 'default_applicable_licenses' to import
18 // all of the 'license_kinds' from "frameworks_base_license"
19 // to get the below license kinds:
20 // SPDX-license-identifier-Apache-2.0
21 default_applicable_licenses: ["frameworks_base_license"],
22 default_team: "trendy_team_android_resources",
23}
24
25genrule {
26 name: "resource-flagging-test-app-compile",
27 tools: ["aapt2"],
28 srcs: [
29 "res/values/bools.xml",
30 "res/values/bools2.xml",
Jeremy Meyerd52bd682024-08-14 11:16:58 -070031 "res/values/ints.xml",
Jeremy Meyer16c83af2024-07-26 16:21:49 -070032 "res/values/strings.xml",
Jeremy Meyerf53a0272024-09-19 09:47:47 -070033 "res/values/styles.xml",
Jeremy Meyer74684032024-08-20 14:10:59 -070034 "res/layout/layout1.xml",
Jeremy Meyere08e0372024-09-17 12:45:26 -070035 "res/layout/layout3.xml",
Jeremy Meyer988be5d2024-09-03 16:31:54 -070036 "res/flag(test.package.falseFlag)/values/bools.xml",
Jeremy Meyere08e0372024-09-17 12:45:26 -070037 "res/flag(test.package.falseFlag)/layout/layout2.xml",
38 "res/flag(test.package.falseFlag)/drawable/removedpng.png",
39 "res/flag(test.package.trueFlag)/layout/layout3.xml",
Jeremy Meyer988be5d2024-09-03 16:31:54 -070040 "res/values/flag(test.package.trueFlag)/bools.xml",
41 "res/values/flag(!test.package.trueFlag)/bools.xml",
42 "res/values/flag(!test.package.falseFlag)/bools.xml",
Jeremy Meyer16c83af2024-07-26 16:21:49 -070043 ],
44 out: [
Jeremy Meyere08e0372024-09-17 12:45:26 -070045 "drawable_removedpng.(test.package.falseFlag).png.flat",
Jeremy Meyer16c83af2024-07-26 16:21:49 -070046 "values_bools.arsc.flat",
Jeremy Meyer988be5d2024-09-03 16:31:54 -070047 "values_bools.(test.package.falseFlag).arsc.flat",
48 "values_bools.(test.package.trueFlag).arsc.flat",
49 "values_bools.(!test.package.falseFlag).arsc.flat",
50 "values_bools.(!test.package.trueFlag).arsc.flat",
Jeremy Meyer16c83af2024-07-26 16:21:49 -070051 "values_bools2.arsc.flat",
Jeremy Meyerd52bd682024-08-14 11:16:58 -070052 "values_ints.arsc.flat",
Jeremy Meyer16c83af2024-07-26 16:21:49 -070053 "values_strings.arsc.flat",
Jeremy Meyerf53a0272024-09-19 09:47:47 -070054 "values_styles.arsc.flat",
Jeremy Meyer74684032024-08-20 14:10:59 -070055 "layout_layout1.xml.flat",
Jeremy Meyere08e0372024-09-17 12:45:26 -070056 "layout_layout2.(test.package.falseFlag).xml.flat",
57 "layout_layout3.xml.flat",
58 "layout_layout3.(test.package.trueFlag).xml.flat",
Jeremy Meyer16c83af2024-07-26 16:21:49 -070059 ],
60 cmd: "$(location aapt2) compile $(in) -o $(genDir) " +
61 "--feature-flags test.package.falseFlag:ro=false,test.package.trueFlag:ro=true",
62}
63
64genrule {
65 name: "resource-flagging-test-app-apk",
66 tools: ["aapt2"],
67 // The first input file in the list must be the manifest
68 srcs: [
69 "AndroidManifest.xml",
70 ":resource-flagging-test-app-compile",
71 ],
Jeremy Meyer423c0f52024-08-02 12:06:54 -070072 out: [
73 "resapp.apk",
74 ],
Jeremy Meyer74684032024-08-20 14:10:59 -070075 cmd: "$(location aapt2) link -o $(out) --manifest $(in) " +
76 "-I $(location :current_android_jar) " +
77 "--feature-flags test.package.falseFlag:ro=false,test.package.trueFlag:ro=true",
78 tool_files: [":current_android_jar"],
Jeremy Meyer16c83af2024-07-26 16:21:49 -070079}
80
Jeremy Meyer423c0f52024-08-02 12:06:54 -070081genrule {
82 name: "resource-flagging-test-app-r-java",
83 tools: ["aapt2"],
84 // The first input file in the list must be the manifest
85 srcs: [
86 "AndroidManifest.xml",
87 ":resource-flagging-test-app-compile",
88 ],
89 out: [
90 "resource-flagging-java/com/android/intenal/flaggedresources/R.java",
91 ],
Jeremy Meyer74684032024-08-20 14:10:59 -070092 cmd: "$(location aapt2) link -o $(genDir)/resapp.apk --java $(genDir)/resource-flagging-java --manifest $(in) " +
93 "-I $(location :current_android_jar) " +
94 "--feature-flags test.package.falseFlag:ro=false,test.package.trueFlag:ro=true",
95 tool_files: [":current_android_jar"],
Jeremy Meyer423c0f52024-08-02 12:06:54 -070096}
97
Jeremy Meyer16c83af2024-07-26 16:21:49 -070098java_genrule {
99 name: "resource-flagging-test-app-apk-as-resource",
100 srcs: [
101 ":resource-flagging-test-app-apk",
102 ],
103 out: ["apks_as_resources.res.zip"],
104 tools: ["soong_zip"],
105
106 cmd: "mkdir -p $(genDir)/res/raw && " +
107 "cp $(in) $(genDir)/res/raw/$$(basename $(in)) && " +
108 "$(location soong_zip) -o $(out) -C $(genDir)/res -D $(genDir)/res",
109}