package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_base_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["frameworks_base_license"], } filegroup { name: "ravenwood-annotations", srcs: [ "annotations-src/**/*.java", ], path: "annotations-src", visibility: ["//visibility:public"], } filegroup { name: "ravenwood-services-policies", srcs: [ "texts/ravenwood-services-policies.txt", ], visibility: ["//visibility:public"], } filegroup { name: "ravenwood-framework-policies", srcs: [ "texts/ravenwood-framework-policies.txt", ], visibility: ["//visibility:public"], } filegroup { name: "ravenwood-standard-options", srcs: [ "texts/ravenwood-standard-options.txt", ], visibility: ["//visibility:public"], } filegroup { name: "ravenwood-annotation-allowed-classes", srcs: [ "texts/ravenwood-annotation-allowed-classes.txt", ], visibility: ["//visibility:public"], } java_library { name: "ravenwood-annotations-lib", srcs: [":ravenwood-annotations"], sdk_version: "core_current", host_supported: true, visibility: ["//visibility:public"], } // This and the next module contain the same classes with different implementations. // "ravenwood-runtime-common-device" will be statically linked in device side tests. // "ravenwood-runtime-common-ravenwood" will only exist in ravenwood-runtime, which will take // precedence even if the test jar (accidentally) contains "ravenwood-runtime-common-device". // "ravenwood-runtime-common" uses it to detect if the rutime is Ravenwood or not. java_library { name: "ravenwood-runtime-common-ravenwood", host_supported: true, sdk_version: "core_current", srcs: [ "runtime-common-ravenwood-src/**/*.java", ], visibility: ["//frameworks/base"], } java_library { name: "ravenwood-runtime-common-device", host_supported: true, sdk_version: "core_current", srcs: [ "runtime-common-device-src/**/*.java", ], visibility: ["//visibility:private"], } java_library { name: "ravenwood-runtime-common", host_supported: true, sdk_version: "core_current", srcs: [ "runtime-common-src/**/*.java", ], libs: [ "ravenwood-runtime-common-ravenwood", ], visibility: ["//visibility:private"], } java_library_host { name: "ravenwood-helper-libcore-runtime.host", srcs: [ "runtime-helper-src/libcore-fake/**/*.java", ], static_libs: [ "ravenwood-runtime-common", ], visibility: ["//visibility:private"], } java_host_for_device { name: "ravenwood-helper-libcore-runtime", libs: [ "ravenwood-helper-libcore-runtime.host", ], visibility: ["//visibility:private"], } java_library { name: "ravenwood-helper-framework-runtime", srcs: [ "runtime-helper-src/framework/**/*.java", ], static_libs: [ "ravenwood-runtime-common", ], libs: [ "framework-minus-apex.ravenwood", "ravenwood-junit", ], visibility: ["//visibility:private"], } // Combine ravenwood-helper-*-runtime and create a single library, which we include // in the ravenwood runtime. // We do it this way rather than including the individual jars in the runtime, because // for some reason we couldn't include a java_host_for_device module in the ravenwood runtime. java_library { name: "ravenwood-helper-runtime", defaults: ["ravenwood-internal-only-visibility-java"], static_libs: [ "ravenwood-helper-framework-runtime", "ravenwood-helper-libcore-runtime", ], } java_library { name: "ravenwood-junit-impl", srcs: [ "junit-src/**/*.java", "junit-impl-src/**/*.java", ], static_libs: [ "androidx.test.monitor-for-device", "ravenwood-runtime-common", ], libs: [ "android.test.mock", "framework-minus-apex.ravenwood", "ravenwood-framework", "services.core.ravenwood", "junit", ], sdk_version: "core_current", visibility: ["//frameworks/base"], jarjar_rules: ":ravenwood-services-jarjar-rules", } // Separated out from ravenwood-junit-impl since it needs to compile // against `module_current` java_library { name: "ravenwood-junit-impl-flag", srcs: [ "junit-flag-src/**/*.java", ], sdk_version: "module_current", libs: [ "junit", "flag-junit", ], visibility: ["//visibility:public"], } // Carefully compiles against only test_current to support tests that // want to verify they're unbundled. The "impl" library above is what // ships inside the Ravenwood environment to actually drive any API // access to implementation details. java_library { name: "ravenwood-junit", srcs: [ "junit-src/**/*.java", "junit-stub-src/**/*.java", "junit-flag-src/**/*.java", ], sdk_version: "test_current", static_libs: [ "ravenwood-runtime-common", "ravenwood-runtime-common-device", ], libs: [ "junit", "flag-junit", ], visibility: ["//visibility:public"], } // Library used to publish a handful of `android.ravenwood` APIs into // the Ravenwood BCP; we don't want to publish these APIs into the BCP // on physical devices, which is why this is a separate library java_library { name: "ravenwood-framework", srcs: [ "framework-src/**/*.java", ], libs: [ "framework-minus-apex.ravenwood", ], sdk_version: "core_current", visibility: ["//visibility:public"], } java_host_for_device { name: "androidx.test.monitor-for-device", libs: [ "androidx.test.monitor-for-host", ], } java_device_for_host { name: "androidx.test.monitor-for-host", libs: [ "androidx.test.monitor", ], } filegroup { name: "ravenwood-services-jarjar-rules", srcs: ["texts/ravenwood-services-jarjar-rules.txt"], visibility: ["//frameworks/base"], } cc_library_shared { name: "libravenwood_runtime", host_supported: true, cflags: [ "-Wall", "-Werror", "-Wno-unused-parameter", "-Wthread-safety", ], srcs: [ "runtime-jni/*.cpp", ], shared_libs: [ "libbase", "liblog", "libnativehelper", "libutils", "libcutils", ], visibility: ["//frameworks/base"], } // For collecting the *stats.csv files in a known directory under out/host/linux-x86/testcases/. // The "test" just shows the available stats filenames. sh_test_host { name: "ravenwood-stats-checker", src: "scripts/ravenwood-stats-checker.sh", test_suites: ["general-tests"], data: [ ":framework-minus-apex.ravenwood.stats", ":framework-minus-apex.ravenwood.apis", ":framework-minus-apex.ravenwood.keep_all", ":services.core.ravenwood.stats", ":services.core.ravenwood.apis", ":services.core.ravenwood.keep_all", ], }