| // Copyright (C) 2011 The Android Open Source Project | |
| // | |
| // Licensed under the Apache License, Version 2.0 (the "License"); | |
| // you may not use this file except in compliance with the License. | |
| // You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, software | |
| // distributed under the License is distributed on an "AS IS" BASIS, | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| // See the License for the specific language governing permissions and | |
| // limitations under the License. | |
| package { | |
| default_applicable_licenses: ["external_dexmaker_license"], | |
| } | |
| // Added automatically by a large-scale-change that took the approach of | |
| // 'apply every license found to every target'. While this makes sure we respect | |
| // every license restriction, it may not be entirely correct. | |
| // | |
| // e.g. GPL in an MIT project might only apply to the contrib/ directory. | |
| // | |
| // Please consider splitting the single license below into multiple licenses, | |
| // taking care not to lose any license_kind information, and overriding the | |
| // default license using the 'licenses: [...]' property on targets as needed. | |
| // | |
| // For unused files, consider creating a 'fileGroup' with "//visibility:private" | |
| // to attach the license to, and including a comment whether the files may be | |
| // used in the current project. | |
| // | |
| // large-scale-change included anything that looked like it might be a license | |
| // text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. | |
| // | |
| // Please consider removing redundant or irrelevant files from 'license_text:'. | |
| // See: http://go/android-license-faq | |
| license { | |
| name: "external_dexmaker_license", | |
| visibility: [":__subpackages__"], | |
| license_kinds: [ | |
| "SPDX-license-identifier-Apache-2.0", | |
| "SPDX-license-identifier-MIT", | |
| ], | |
| license_text: [ | |
| "COPYING", | |
| "LICENSE", | |
| "NOTICE", | |
| ], | |
| } | |
| java_library_static { | |
| name: "dexmaker", | |
| // Include all the java files. | |
| srcs: ["dexmaker/src/main/java/**/*.java"], | |
| static_libs: [ | |
| "dexmaker-dx-target", | |
| ], | |
| sdk_version: "core_current", | |
| errorprone: { | |
| javacflags: [ | |
| "-Xep:EmptyTopLevelDeclaration:WARN", | |
| "-Xep:ReturnValueIgnored:WARN", | |
| ], | |
| }, | |
| } | |
| // Build Dexmaker's MockMaker, a plugin to Mockito | |
| java_library_static { | |
| name: "dexmaker-mockmaker", | |
| sdk_version: "core_current", | |
| srcs: ["dexmaker-mockito/src/main/java/**/*.java"], | |
| java_resource_dirs: ["dexmaker-mockito/src/main/resources"], | |
| libs: [ | |
| "dexmaker", | |
| "mockito-api", | |
| ], | |
| } | |
| // Build dispatcher for Dexmaker's inline MockMaker | |
| java_library_static { | |
| name: "dexmaker-inline-mockmaker-dispatcher", | |
| sdk_version: "core_current", | |
| srcs: ["dexmaker-mockito-inline-dispatcher/src/main/java/**/*.java"], | |
| } | |
| // Defaults for agent code. | |
| cc_defaults { | |
| name: "dexmaker_agent_defaults", | |
| // Compile with the NDK, so that the agent can be used in apps. | |
| sdk_version: "current", | |
| stl: "libc++_static", | |
| host_supported: false, | |
| device_supported: true, | |
| rtti: true, | |
| cflags: [ | |
| "-std=c++11", | |
| "-Wall", | |
| "-Werror", | |
| "-Wno-unused-parameter", | |
| "-Wno-shift-count-overflow", | |
| "-Wno-error=non-virtual-dtor", | |
| "-Wno-sign-compare", | |
| "-Wno-switch", | |
| "-Wno-missing-braces", | |
| ], | |
| static_libs: [ | |
| "slicer_ndk", | |
| ], | |
| shared_libs: [ | |
| "libz", | |
| ], | |
| header_libs: [ | |
| "jni_headers", | |
| "libopenjdkjvmti_headers", | |
| ], | |
| } | |
| // Build agent for Dexmaker's inline MockMaker | |
| cc_library_shared { | |
| name: "libdexmakerjvmtiagent", | |
| defaults: [ | |
| "dexmaker_agent_defaults", | |
| ], | |
| srcs: ["dexmaker-mockito-inline/src/main/jni/**/*.cc"], | |
| min_sdk_version: "29", | |
| } | |
| // Build agent for Dexmaker's extended MockMaker | |
| cc_library_shared { | |
| name: "libstaticjvmtiagent", | |
| defaults: [ | |
| "dexmaker_agent_defaults", | |
| ], | |
| srcs: ["dexmaker-mockito-inline-extended/src/main/jni/**/*.cc"], | |
| min_sdk_version: "29", | |
| } | |
| // Build agent for Dexmaker's inline tests | |
| cc_library_shared { | |
| name: "libmultiplejvmtiagentsinterferenceagent", | |
| defaults: [ | |
| "dexmaker_agent_defaults", | |
| ], | |
| srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"], | |
| } | |
| // Build Dexmaker's inline MockMaker, a plugin to Mockito | |
| java_library_static { | |
| name: "dexmaker-inline-mockmaker", | |
| sdk_version: "current", | |
| srcs: ["dexmaker-mockito-inline/src/main/java/**/*.java"], | |
| java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"], | |
| libs: [ | |
| "dexmaker", | |
| "mockito-api", | |
| ], | |
| required: ["libdexmakerjvmtiagent"], | |
| } | |
| // Build Dexmaker's extended MockMaker, a plugin to Mockito | |
| java_library_static { | |
| name: "dexmaker-extended-mockmaker", | |
| sdk_version: "current", | |
| srcs: ["dexmaker-mockito-inline-extended/src/main/java/**/*.java"], | |
| java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"], | |
| libs: [ | |
| "dexmaker", | |
| "mockito-api", | |
| "dexmaker-inline-mockmaker", | |
| ], | |
| required: [ | |
| "libdexmakerjvmtiagent", | |
| "libstaticjvmtiagent", | |
| ], | |
| errorprone: { | |
| javacflags: [ | |
| "-Xep:ReturnValueIgnored:WARN", | |
| "-Xep:InfiniteRecursion:WARN", | |
| ], | |
| }, | |
| } | |
| // Provides mockito functionality for on-device tests. Does not allow stubbing of final or static | |
| // methods. | |
| java_library_static { | |
| name: "mockito-target", | |
| static_libs: [ | |
| "mockito-target-minus-junit4", | |
| "junit", | |
| ], | |
| sdk_version: "core_current", | |
| } | |
| // Same as mockito-target but does not bundle junit | |
| java_library_static { | |
| name: "mockito-target-minus-junit4", | |
| static_libs: [ | |
| "mockito", | |
| "dexmaker", | |
| "dexmaker-mockmaker", | |
| "objenesis", | |
| ], | |
| libs: ["junit"], | |
| sdk_version: "core_current", | |
| java_version: "1.7", | |
| } | |
| // Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not | |
| // allow stubbing of static methods. | |
| // Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent | |
| java_library_static { | |
| name: "mockito-target-inline", | |
| static_libs: [ | |
| "mockito-target-inline-minus-junit4", | |
| "junit", | |
| ], | |
| sdk_version: "current", | |
| } | |
| // Same as mockito-target-inline but does not bundle junit | |
| java_library_static { | |
| name: "mockito-target-inline-minus-junit4", | |
| static_libs: [ | |
| "mockito", | |
| "dexmaker", | |
| "dexmaker-inline-mockmaker", | |
| "objenesis", | |
| ], | |
| libs: ["junit"], | |
| sdk_version: "current", | |
| java_version: "1.7", | |
| } | |
| // Provides mockito functionality for on-device tests. Allows stubbing of final and static methods. | |
| // Stubbing static methods is not an official mockito API. | |
| // Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and | |
| // libdexmakerjvmtiagent | |
| // This library as known leaks that can lead to a crash. Local workaround is to | |
| // call Mockito.framework().clearInlineMocks() | |
| java_library_static { | |
| name: "mockito-target-extended", | |
| static_libs: [ | |
| "mockito-target-extended-minus-junit4", | |
| "junit", | |
| ], | |
| sdk_version: "current", | |
| } | |
| // Same as mockito-target-extended but does not bundle junit | |
| java_library_static { | |
| name: "mockito-target-extended-minus-junit4", | |
| static_libs: [ | |
| "mockito", | |
| "dexmaker", | |
| "dexmaker-inline-mockmaker", | |
| "dexmaker-extended-mockmaker", | |
| "objenesis", | |
| ], | |
| libs: ["junit"], | |
| sdk_version: "current", | |
| java_version: "1.7", | |
| } | |
| // dexmaker tests | |
| java_library_static { | |
| name: "dexmaker-tests-lib", | |
| sdk_version: "current", | |
| srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"], | |
| libs: [ | |
| "androidx.test.rules", | |
| "dexmaker", | |
| "junit", | |
| ], | |
| errorprone: { | |
| javacflags: [ | |
| "-Xep:ReturnValueIgnored:WARN", | |
| ], | |
| }, | |
| } | |
| // dexmaker-mockito tests | |
| java_library_static { | |
| name: "dexmaker-mockmaker-tests", | |
| sdk_version: "current", | |
| srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"], | |
| libs: [ | |
| "androidx.test.rules", | |
| "dexmaker", | |
| "mockito", | |
| "junit", | |
| "dexmaker-mockmaker", | |
| ], | |
| errorprone: { | |
| javacflags: [ | |
| "-Xep:ReturnValueIgnored:WARN", | |
| ], | |
| }, | |
| } | |
| // dexmaker-mockito-inline tests | |
| java_library_static { | |
| name: "dexmaker-inline-mockmaker-tests", | |
| sdk_version: "current", | |
| srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"], | |
| libs: [ | |
| "androidx.test.rules", | |
| "dexmaker", | |
| "android-support-v4", | |
| "mockito", | |
| "junit", | |
| "dexmaker-inline-mockmaker", | |
| ], | |
| } | |
| // dexmaker-mockito-extended tests | |
| java_library_static { | |
| name: "dexmaker-extended-mockmaker-tests", | |
| sdk_version: "current", | |
| srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"], | |
| libs: [ | |
| "androidx.test.rules", | |
| "dexmaker", | |
| "android-support-v4", | |
| "mockito", | |
| "junit", | |
| "dexmaker-extended-mockmaker", | |
| ], | |
| } | |
| /* | |
| * To run the tests: | |
| * atest DexmakerTests | |
| */ | |
| android_test { | |
| name: "DexmakerTests", | |
| sdk_version: "current", | |
| static_libs: [ | |
| "dexmaker-tests-lib", | |
| "dexmaker", | |
| "androidx.test.rules", | |
| "junit", | |
| ], | |
| } |