• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2022 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    default_visibility: [":__subpackages__"],
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20genrule {
21    name: "statslog-ondevicepersonalization-java-gen",
22    tools: ["stats-log-api-gen"],
23    cmd: "$(location stats-log-api-gen) --java $(out) --module ondevicepersonalization" +
24        " --javaPackage com.android.ondevicepersonalization" +
25        " --javaClass OnDevicePersonalizationStatsLog",
26    out: ["com/android/ondevicepersonalization/OnDevicePersonalizationStatsLog.java"],
27}
28
29java_defaults {
30    name: "ondevicepersonalization-java-defaults",
31    lint: {
32        strict_updatability_linting: true,
33    },
34    plugins: [
35        "staledataclass-annotation-processor",
36    ],
37    // Exports needed for staledataclass-annotation-processor, see b/139342589.
38    javacflags: [
39        "-J--add-modules=jdk.compiler",
40        "-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
41        "-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED",
42        "-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
43        "-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
44    ],
45    min_sdk_version: "Tiramisu",
46}
47
48filegroup {
49    name: "ondevicepersonalization-sources",
50    srcs: [
51        "src/**/*.java",
52        "src/**/*.aidl",
53        "src/com/android/ondevicepersonalization/services/policyengine/**/*.kt",
54    ],
55    path: "src",
56}
57
58filegroup {
59    name: "ondevicepersonalization-flags-constants-sources",
60    srcs: [
61        "src/com/android/ondevicepersonalization/services/FlagsConstants.java",
62    ],
63    path: "src",
64    visibility: [
65        "//packages/modules/OnDevicePersonalization/tests/testutils",
66    ],
67}
68
69filegroup {
70    name: "chronicle-sources",
71    srcs: [
72        "src/com/android/libraries/**/*.kt",
73    ],
74    path: "src",
75}
76
77java_library {
78    name: "ondevicepersonalization-protos",
79    proto: {
80        type: "lite",
81    },
82    sdk_version: "system_current",
83    min_sdk_version: "Tiramisu",
84    srcs: ["src/**/*.proto"],
85    apex_available: [
86        "com.android.ondevicepersonalization",
87    ],
88}
89
90java_genrule {
91    name: "ondevicepersonalization-fbs",
92    tools: [
93        "flatc",
94        "soong_zip",
95    ],
96    host_supported: true,
97    srcs: ["src/**/*.fbs"],
98    out: ["ondevicepersonalization-fbs.srcjar"],
99    cmd: "$(location flatc) -o $(genDir) --java $(in) " +
100        "&& $(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)",
101}
102
103android_app {
104    name: "OnDevicePersonalization",
105    srcs: [
106        ":ondevicepersonalization-sources",
107        ":chronicle-sources",
108        ":ondevicepersonalization-fbs",
109        ":statslog-ondevicepersonalization-java-gen",
110        ":common-ondevicepersonalization-sources",
111    ],
112    libs: [
113        "framework-adservices.stubs.module_lib", // For user consent
114        "framework-annotations-lib",
115        "framework-configinfrastructure.stubs.module_lib",
116        "framework-connectivity.stubs.module_lib",
117        "framework-location.stubs.module_lib",
118        "framework-ondevicepersonalization.impl",
119        "framework-statsd.stubs.module_lib", // For WW logging
120        "kotlin-annotations",
121    ],
122    static_libs: [
123        "androidx.concurrent_concurrent-futures",
124        "federated-compute-java-proto-lite",
125        "guava",
126        "kotlin-stdlib",
127        "kotlinx_coroutines",
128        "kotlinx-coroutines-android",
129        "mobile_data_downloader_lib",
130        "modules-utils-build",
131        "ondevicepersonalization-plugin-lib",
132        "ondevicepersonalization-protos",
133        "flatbuffers-java",
134        "apache-velocity-engine-core",
135        "owasp-java-encoder",
136        "tensorflowlite_java",
137        "tensorflow_core_proto_java_lite",
138        "adservices-shared-spe",
139        "common-ondevicepersonalization-protos",
140        "adservices-shared-datastore", // For proto data store.
141    ],
142    sdk_version: "module_current",
143    min_sdk_version: "33",
144    updatable: true,
145    certificate: "platform",
146    privileged: true,
147    apex_available: ["com.android.ondevicepersonalization"],
148    defaults: [
149        "ondevicepersonalization-java-defaults",
150    ],
151    optimize: {
152        shrink_resources: true,
153        proguard_flags_files: ["src/proguard.flags"],
154    },
155}
156