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