blob: 6648cf625982d373c5af54d940fdc12306e0bc2e [file] [log] [blame]
// 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",
}
// 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",
],
}
// 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
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",
}
java_import {
name: "dexmaker-dx-target",
jars: ["lib/dalvik-dx-9.0.0_r3.jar"],
}
// 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",
],
}
// 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",
],
}
// 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",
],
}