diff options
Diffstat (limited to 'Android.bp')
-rw-r--r-- | Android.bp | 223 |
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"], +} |