blob: 68c68953035cc9ee3821f2e87ed350ffb50c84cf [file] [log] [blame]
Colin Cross4c609952017-10-18 13:00:01 -07001// 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
Bob Badouredae1422021-02-12 20:49:13 -080015package {
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
Colin Cross4c609952017-10-18 13:00:01 -070052java_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",
Colin Cross4c609952017-10-18 13:00:01 -070060 ],
61
Neil Fullerbc1141d2018-10-09 17:29:21 +010062 sdk_version: "core_current",
Colin Cross4c609952017-10-18 13:00:01 -070063}
64
65// Build Dexmaker's MockMaker, a plugin to Mockito
66java_library_static {
67 name: "dexmaker-mockmaker",
Neil Fullerbc1141d2018-10-09 17:29:21 +010068 sdk_version: "core_current",
Colin Cross4c609952017-10-18 13:00:01 -070069 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
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080077// Build dispatcher for Dexmaker's inline MockMaker
78java_library_static {
79 name: "dexmaker-inline-mockmaker-dispatcher",
Paul Duffine566b662019-06-12 12:44:20 +010080 sdk_version: "core_current",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080081 srcs: ["dexmaker-mockito-inline-dispatcher/src/main/java/**/*.java"],
82}
83
Andreas Gampea884f902018-01-18 21:29:41 -080084// 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",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080091
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: [
Andreas Gampea884f902018-01-18 21:29:41 -0800110 "slicer_ndk",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800111 ],
112
113 shared_libs: [
114 "libz",
115 ],
116
Paul Duffin131d88f2019-06-28 16:15:42 +0100117 header_libs: [
Orion Hodsoncf2f14c2020-04-14 13:40:23 +0100118 "jni_headers",
Orion Hodsonf37ec312020-04-09 21:56:25 +0100119 "libopenjdkjvmti_headers",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800120 ],
121}
122
Andreas Gampea884f902018-01-18 21:29:41 -0800123// 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}
131
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000132// Build agent for Dexmaker's extended MockMaker
133cc_library_shared {
134 name: "libstaticjvmtiagent",
135 defaults: [
136 "dexmaker_agent_defaults",
137 ],
138 srcs: ["dexmaker-mockito-inline-extended/src/main/jni/**/*.cc"],
139}
140
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800141// Build agent for Dexmaker's inline tests
142cc_library_shared {
143 name: "libmultiplejvmtiagentsinterferenceagent",
Andreas Gampea884f902018-01-18 21:29:41 -0800144 defaults: [
145 "dexmaker_agent_defaults",
146 ],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800147 srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800148}
149
150// Build Dexmaker's inline MockMaker, a plugin to Mockito
151java_library_static {
152 name: "dexmaker-inline-mockmaker",
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700153 sdk_version: "current",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800154 srcs: ["dexmaker-mockito-inline/src/main/java/**/*.java"],
155 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
156 libs: [
157 "dexmaker",
158 "mockito-api",
159 ],
160 required: ["libdexmakerjvmtiagent"],
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000161}
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700162
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000163// Build Dexmaker's extended MockMaker, a plugin to Mockito
164java_library_static {
165 name: "dexmaker-extended-mockmaker",
166 sdk_version: "current",
167 srcs: ["dexmaker-mockito-inline-extended/src/main/java/**/*.java"],
168
169 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
170
171 libs: [
172 "dexmaker",
173 "mockito-api",
174 "dexmaker-inline-mockmaker",
175 ],
176 required: [
177 "libdexmakerjvmtiagent",
Orion Hodsonf37ec312020-04-09 21:56:25 +0100178 "libstaticjvmtiagent",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000179 ],
180}
181
182// Provides mockito functionality for on-device tests. Does not allow stubbing of final or static
183// methods.
184java_library_static {
185 name: "mockito-target",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000186 static_libs: [
187 "mockito-target-minus-junit4",
188 "junit",
189 ],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100190 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000191}
192
193// Same as mockito-target but does not bundle junit
194java_library_static {
195 name: "mockito-target-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000196 static_libs: [
197 "mockito",
198 "dexmaker",
199 "dexmaker-mockmaker",
200 "objenesis",
201 ],
202 libs: ["junit"],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100203 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000204
205 java_version: "1.7",
206}
207
208// Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not
209// allow stubbing of static methods.
210// Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent
211java_library_static {
212 name: "mockito-target-inline",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000213 static_libs: [
214 "mockito-target-inline-minus-junit4",
215 "junit",
216 ],
217 sdk_version: "current",
218}
219
220// Same as mockito-target-inline but does not bundle junit
221java_library_static {
222 name: "mockito-target-inline-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000223 static_libs: [
224 "mockito",
225 "dexmaker",
226 "dexmaker-inline-mockmaker",
227 "objenesis",
228 ],
229 libs: ["junit"],
230 sdk_version: "current",
231
232 java_version: "1.7",
233}
234
235// Provides mockito functionality for on-device tests. Allows stubbing of final and static methods.
236// Stubbing static methods is not an official mockito API.
237// Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and
238// libdexmakerjvmtiagent
239java_library_static {
240 name: "mockito-target-extended",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000241 static_libs: [
242 "mockito-target-extended-minus-junit4",
243 "junit",
244 ],
245 sdk_version: "current",
246}
247
248// Same as mockito-target-extended but does not bundle junit
249java_library_static {
250 name: "mockito-target-extended-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000251 static_libs: [
252 "mockito",
253 "dexmaker",
254 "dexmaker-inline-mockmaker",
255 "dexmaker-extended-mockmaker",
256 "objenesis",
257 ],
258 libs: ["junit"],
259 sdk_version: "current",
260
261 java_version: "1.7",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800262}
263
Colin Cross4c609952017-10-18 13:00:01 -0700264java_import {
265 name: "dexmaker-dx-target",
Philip P. Moltmannaa1c0e92018-12-05 08:46:19 -0800266 jars: ["lib/dalvik-dx-9.0.0_r3.jar"],
Colin Cross4c609952017-10-18 13:00:01 -0700267}
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000268
269// dexmaker tests
270java_library_static {
271 name: "dexmaker-tests-lib",
272 sdk_version: "current",
273 srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"],
274
275 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800276 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000277 "dexmaker",
278 "junit",
279 ],
280}
281
282// dexmaker-mockito tests
283java_library_static {
284 name: "dexmaker-mockmaker-tests",
285 sdk_version: "current",
286 srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"],
287
288 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800289 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000290 "dexmaker",
291 "mockito",
292 "junit",
293 "dexmaker-mockmaker",
294 ],
295}
296
297// dexmaker-mockito-inline tests
298java_library_static {
299 name: "dexmaker-inline-mockmaker-tests",
300 sdk_version: "current",
301 srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"],
302
303 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800304 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000305 "dexmaker",
306 "android-support-v4",
307 "mockito",
308 "junit",
309 "dexmaker-inline-mockmaker",
310 ],
311}
312
313// dexmaker-mockito-extended tests
314java_library_static {
315 name: "dexmaker-extended-mockmaker-tests",
316 sdk_version: "current",
317 srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"],
318
319 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800320 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000321 "dexmaker",
322 "android-support-v4",
323 "mockito",
324 "junit",
325 "dexmaker-extended-mockmaker",
326 ],
327}
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800328
329/*
330 * To run the tests:
331 * atest DexmakerTests
332 */
333
334android_test {
335 name: "DexmakerTests",
336 sdk_version: "current",
337 static_libs: [
338 "dexmaker-tests-lib",
339 "dexmaker",
Brett Chabote0caade2019-03-01 14:16:07 -0800340 "androidx.test.rules",
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800341 "junit",
342 ],
343}