aboutsummaryrefslogtreecommitdiff
path: root/Android.bp
diff options
context:
space:
mode:
Diffstat (limited to 'Android.bp')
-rw-r--r--Android.bp223
1 files changed, 223 insertions, 0 deletions
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 000000000..250a13b33
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,223 @@
+// Copyright (C) 2019 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_visibility: [":__subpackages__"],
+ default_applicable_licenses: ["external_robolectric_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.
+// See: http://go/android-license-faq
+license {
+ name: "external_robolectric_license",
+ visibility: [":__subpackages__"],
+ license_kinds: [
+ "SPDX-license-identifier-Apache-2.0",
+ "SPDX-license-identifier-MIT",
+ ],
+ license_text: [
+ "LICENSE",
+ ],
+}
+
+// Empty library. Should be removed
+java_library {
+ name: "robolectric_android-all-stub_upstream",
+ visibility: ["//visibility:public"],
+}
+
+// build.prop file created by module type defined in soong/robolectric.go
+robolectric_build_props {
+ name: "robolectric_build_props_upstream",
+}
+
+java_genrule_host {
+ name: "robolectric_framework_res_upstream",
+ tools: ["zip2zip"],
+ srcs: [":framework-res"],
+ out: ["robolectric_framework_res_upstream.jar"],
+ cmd: "$(location zip2zip) " +
+ "-i $(location :framework-res) " +
+ "-o $(location robolectric_framework_res_upstream.jar) " +
+ "-x classes.dex " +
+ "-x META-INF/**/* " +
+ "-0 resources.arsc",
+}
+
+java_device_for_host {
+ name: "robolectric_android-all-device-deps_upstream",
+ libs: [
+ "conscrypt-for-host",
+ "core-icu4j-for-host",
+ "core-libart-for-host",
+ "ext",
+ "framework-all",
+ "icu4j-icudata-jarjar",
+ "icu4j-icutzdata-jarjar",
+ "ims-common",
+ "libphonenumber-platform",
+ "okhttp-for-host",
+ "services",
+ "services.accessibility",
+ "telephony-common",
+ "android.car",
+ "androidx.test.monitor",
+ "androidx.test.ext.truth", // -nodep?
+ ],
+}
+
+java_library_host {
+ name: "robolectric-host-android_all_upstream",
+ static_libs: [
+ "robolectric_android-all-device-deps_upstream",
+ "robolectric_tzdata",
+ "robolectric_framework_res_upstream",
+ ],
+ dist: {
+ targets: [
+ "sdk",
+ "win_sdk",
+ ],
+ dest: "android-all-robolectric_upstream.jar",
+ },
+
+ java_resources: [
+ // Copy the build.prop
+ ":robolectric_build_props_upstream",
+ ],
+ visibility: [
+ ":__subpackages__",
+ "//prebuilts/misc/common/robolectric",
+ ],
+}
+
+//#############################################
+// Assemble Robolectric_all
+//#############################################
+
+// This is a hack and should be removed with proper resource merging a la maven-shaded-plugin
+java_genrule_host {
+ name: "robolectric_meta_service_file",
+ out: ["robolectric_meta_service_file.jar"],
+ tools: ["soong_zip"],
+ cmd: "mkdir -p $(genDir)/META-INF/services/ && " +
+ "echo -e 'org.robolectric.Shadows\norg.robolectric.shadows.httpclient.Shadows\norg.robolectric.shadows.multidex.Shadows' > " +
+ "$(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider &&" +
+ "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)/META-INF/services/",
+}
+
+java_library_host {
+ name: "Robolectric_all_upstream",
+
+ static_libs: [
+ "robolectric_meta_service_file",
+ "Robolectric_shadows_httpclient_upstream",
+ "Robolectric_shadows_framework_upstream",
+ "Robolectric_shadows_multidex_upstream",
+ "Robolectric_robolectric_upstream",
+ "Robolectric_annotations_upstream",
+ "Robolectric_resources_upstream",
+ "Robolectric_shadowapi_upstream",
+ "Robolectric_sandbox_upstream",
+ "Robolectric_junit_upstream",
+ "Robolectric_utils_upstream",
+ "Robolectric_utils_reflector_upstream",
+ "Robolectric_nativeruntime_upstream",
+ "asm-9.2",
+ "junit",
+ "asm-tree-9.2",
+ "guava",
+ "asm-commons-9.2",
+ "bouncycastle-unbundled",
+ "conscrypt-unbundled",
+ "robolectric-sqlite4java-0.282",
+ "hamcrest",
+ "hamcrest-library",
+ "robolectric-host-androidx-test-runner_upstream",
+ "robolectric-host-org_apache_http_legacy_upstream", //TODO: remove
+ ],
+
+ java_resource_dirs: [
+ "shadows/framework/src/main/resources",
+ "src/main/resources",
+ ],
+}
+
+// Make Robolectric_all available as a target jar, but treated as an aar
+java_host_for_device {
+ name: "Robolectric_all-target_upstream",
+ libs: ["Robolectric_all_upstream"],
+ visibility: ["//visibility:public"],
+}
+
+// Make dependencies available as host jars
+java_device_for_host {
+ name: "robolectric-host-androidx-test-core_upstream",
+ libs: ["androidx.test.core"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx-test-ext-junit_upstream",
+ libs: ["androidx.test.ext.junit"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx-test-monitor_upstream",
+ libs: ["androidx.test.monitor"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx-test-runner_upstream",
+ libs: ["androidx.test.runner"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx_upstream",
+ libs: ["androidx.fragment_fragment"],
+}
+
+java_device_for_host {
+ name: "robolectric-host-androidx_test_espresso",
+ libs: ["androidx.test.espresso.idling-resource"],
+}
+
+//java_device_for_host {
+// name: "robolectric-host-android-support-v4_upstream",
+// libs: ["android-support-v4"],
+//}
+
+java_device_for_host {
+ name: "robolectric-host-android-support-multidex_upstream",
+ libs: [
+ "android-support-multidex",
+ "com.android.support.multidex_1.0.3",
+ ],
+}
+
+java_device_for_host {
+ name: "robolectric-host-org_apache_http_legacy_upstream",
+ libs: ["org.apache.http.legacy.stubs"],
+}