1// Copyright (C) 2011 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_applicable_licenses: ["external_dexmaker_license"], 17} 18 19// Added automatically by a large-scale-change that took the approach of 20// 'apply every license found to every target'. While this makes sure we respect 21// every license restriction, it may not be entirely correct. 22// 23// e.g. GPL in an MIT project might only apply to the contrib/ directory. 24// 25// Please consider splitting the single license below into multiple licenses, 26// taking care not to lose any license_kind information, and overriding the 27// default license using the 'licenses: [...]' property on targets as needed. 28// 29// For unused files, consider creating a 'fileGroup' with "//visibility:private" 30// to attach the license to, and including a comment whether the files may be 31// used in the current project. 32// 33// large-scale-change included anything that looked like it might be a license 34// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 35// 36// Please consider removing redundant or irrelevant files from 'license_text:'. 37// See: http://go/android-license-faq 38license { 39 name: "external_dexmaker_license", 40 visibility: [":__subpackages__"], 41 license_kinds: [ 42 "SPDX-license-identifier-Apache-2.0", 43 "SPDX-license-identifier-MIT", 44 ], 45 license_text: [ 46 "COPYING", 47 "LICENSE", 48 "NOTICE", 49 ], 50} 51 52java_library_static { 53 name: "dexmaker", 54 55 // Include all the java files. 56 srcs: ["dexmaker/src/main/java/**/*.java"], 57 58 static_libs: [ 59 "dexmaker-dx-target", 60 ], 61 62 sdk_version: "core_current", 63} 64 65// Build Dexmaker's MockMaker, a plugin to Mockito 66java_library_static { 67 name: "dexmaker-mockmaker", 68 sdk_version: "core_current", 69 srcs: ["dexmaker-mockito/src/main/java/**/*.java"], 70 java_resource_dirs: ["dexmaker-mockito/src/main/resources"], 71 libs: [ 72 "dexmaker", 73 "mockito-api", 74 ], 75} 76 77// Build dispatcher for Dexmaker's inline MockMaker 78java_library_static { 79 name: "dexmaker-inline-mockmaker-dispatcher", 80 sdk_version: "core_current", 81 srcs: ["dexmaker-mockito-inline-dispatcher/src/main/java/**/*.java"], 82} 83 84// Defaults for agent code. 85cc_defaults { 86 name: "dexmaker_agent_defaults", 87 88 // Compile with the NDK, so that the agent can be used in apps. 89 sdk_version: "current", 90 stl: "libc++_static", 91 92 host_supported: false, 93 device_supported: true, 94 95 rtti: true, 96 97 cflags: [ 98 "-std=c++11", 99 "-Wall", 100 "-Werror", 101 "-Wno-unused-parameter", 102 "-Wno-shift-count-overflow", 103 "-Wno-error=non-virtual-dtor", 104 "-Wno-sign-compare", 105 "-Wno-switch", 106 "-Wno-missing-braces", 107 ], 108 109 static_libs: [ 110 "slicer_ndk", 111 ], 112 113 shared_libs: [ 114 "libz", 115 ], 116 117 header_libs: [ 118 "jni_headers", 119 "libopenjdkjvmti_headers", 120 ], 121} 122 123// Build agent for Dexmaker's inline MockMaker 124cc_library_shared { 125 name: "libdexmakerjvmtiagent", 126 defaults: [ 127 "dexmaker_agent_defaults", 128 ], 129 srcs: ["dexmaker-mockito-inline/src/main/jni/**/*.cc"], 130 min_sdk_version: "29", 131} 132 133// Build agent for Dexmaker's extended MockMaker 134cc_library_shared { 135 name: "libstaticjvmtiagent", 136 defaults: [ 137 "dexmaker_agent_defaults", 138 ], 139 srcs: ["dexmaker-mockito-inline-extended/src/main/jni/**/*.cc"], 140 min_sdk_version: "29", 141} 142 143// Build agent for Dexmaker's inline tests 144cc_library_shared { 145 name: "libmultiplejvmtiagentsinterferenceagent", 146 defaults: [ 147 "dexmaker_agent_defaults", 148 ], 149 srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"], 150} 151 152// Build Dexmaker's inline MockMaker, a plugin to Mockito 153java_library_static { 154 name: "dexmaker-inline-mockmaker", 155 sdk_version: "current", 156 srcs: ["dexmaker-mockito-inline/src/main/java/**/*.java"], 157 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"], 158 libs: [ 159 "dexmaker", 160 "mockito-api", 161 ], 162 required: ["libdexmakerjvmtiagent"], 163} 164 165// Build Dexmaker's extended MockMaker, a plugin to Mockito 166java_library_static { 167 name: "dexmaker-extended-mockmaker", 168 sdk_version: "current", 169 srcs: ["dexmaker-mockito-inline-extended/src/main/java/**/*.java"], 170 171 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"], 172 173 libs: [ 174 "dexmaker", 175 "mockito-api", 176 "dexmaker-inline-mockmaker", 177 ], 178 required: [ 179 "libdexmakerjvmtiagent", 180 "libstaticjvmtiagent", 181 ], 182} 183 184// Provides mockito functionality for on-device tests. Does not allow stubbing of final or static 185// methods. 186java_library_static { 187 name: "mockito-target", 188 static_libs: [ 189 "mockito-target-minus-junit4", 190 "junit", 191 ], 192 sdk_version: "core_current", 193} 194 195// Same as mockito-target but does not bundle junit 196java_library_static { 197 name: "mockito-target-minus-junit4", 198 static_libs: [ 199 "mockito", 200 "dexmaker", 201 "dexmaker-mockmaker", 202 "objenesis", 203 ], 204 libs: ["junit"], 205 sdk_version: "core_current", 206 207 java_version: "1.7", 208} 209 210// Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not 211// allow stubbing of static methods. 212// Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent 213java_library_static { 214 name: "mockito-target-inline", 215 static_libs: [ 216 "mockito-target-inline-minus-junit4", 217 "junit", 218 ], 219 sdk_version: "current", 220} 221 222// Same as mockito-target-inline but does not bundle junit 223java_library_static { 224 name: "mockito-target-inline-minus-junit4", 225 static_libs: [ 226 "mockito", 227 "dexmaker", 228 "dexmaker-inline-mockmaker", 229 "objenesis", 230 ], 231 libs: ["junit"], 232 sdk_version: "current", 233 234 java_version: "1.7", 235} 236 237// Provides mockito functionality for on-device tests. Allows stubbing of final and static methods. 238// Stubbing static methods is not an official mockito API. 239// Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and 240// libdexmakerjvmtiagent 241java_library_static { 242 name: "mockito-target-extended", 243 static_libs: [ 244 "mockito-target-extended-minus-junit4", 245 "junit", 246 ], 247 sdk_version: "current", 248} 249 250// Same as mockito-target-extended but does not bundle junit 251java_library_static { 252 name: "mockito-target-extended-minus-junit4", 253 static_libs: [ 254 "mockito", 255 "dexmaker", 256 "dexmaker-inline-mockmaker", 257 "dexmaker-extended-mockmaker", 258 "objenesis", 259 ], 260 libs: ["junit"], 261 sdk_version: "current", 262 263 java_version: "1.7", 264} 265 266java_import { 267 name: "dexmaker-dx-target", 268 jars: ["lib/dalvik-dx-9.0.0_r3.jar"], 269} 270 271// dexmaker tests 272java_library_static { 273 name: "dexmaker-tests-lib", 274 sdk_version: "current", 275 srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"], 276 277 libs: [ 278 "androidx.test.rules", 279 "dexmaker", 280 "junit", 281 ], 282} 283 284// dexmaker-mockito tests 285java_library_static { 286 name: "dexmaker-mockmaker-tests", 287 sdk_version: "current", 288 srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"], 289 290 libs: [ 291 "androidx.test.rules", 292 "dexmaker", 293 "mockito", 294 "junit", 295 "dexmaker-mockmaker", 296 ], 297} 298 299// dexmaker-mockito-inline tests 300java_library_static { 301 name: "dexmaker-inline-mockmaker-tests", 302 sdk_version: "current", 303 srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"], 304 305 libs: [ 306 "androidx.test.rules", 307 "dexmaker", 308 "android-support-v4", 309 "mockito", 310 "junit", 311 "dexmaker-inline-mockmaker", 312 ], 313} 314 315// dexmaker-mockito-extended tests 316java_library_static { 317 name: "dexmaker-extended-mockmaker-tests", 318 sdk_version: "current", 319 srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"], 320 321 libs: [ 322 "androidx.test.rules", 323 "dexmaker", 324 "android-support-v4", 325 "mockito", 326 "junit", 327 "dexmaker-extended-mockmaker", 328 ], 329} 330 331/* 332 * To run the tests: 333 * atest DexmakerTests 334 */ 335 336android_test { 337 name: "DexmakerTests", 338 sdk_version: "current", 339 static_libs: [ 340 "dexmaker-tests-lib", 341 "dexmaker", 342 "androidx.test.rules", 343 "junit", 344 ], 345} 346