| 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"], |
| |
| // OWNER: g/ravenwood |
| // Bug component: 25698 |
| default_team: "trendy_team_ravenwood", |
| } |
| |
| filegroup { |
| name: "ravenwood-common-policies", |
| srcs: [ |
| "texts/ravenwood-common-policies.txt", |
| ], |
| visibility: ["//visibility:private"], |
| } |
| |
| filegroup { |
| name: "ravenwood-services-policies", |
| srcs: [ |
| "texts/ravenwood-services-policies.txt", |
| ], |
| visibility: ["//visibility:private"], |
| } |
| |
| filegroup { |
| name: "ravenwood-framework-policies", |
| srcs: [ |
| "texts/ravenwood-framework-policies.txt", |
| ], |
| visibility: ["//visibility:private"], |
| } |
| |
| filegroup { |
| name: "ravenwood-standard-options", |
| srcs: [ |
| "texts/ravenwood-standard-options.txt", |
| ], |
| visibility: ["//visibility:private"], |
| } |
| |
| filegroup { |
| name: "ravenwood-annotation-allowed-classes", |
| srcs: [ |
| "texts/ravenwood-annotation-allowed-classes.txt", |
| ], |
| visibility: ["//visibility:private"], |
| } |
| |
| // 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: [ |
| // Some tests need to access the utilities. |
| ":__subpackages__", |
| ], |
| } |
| |
| 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", |
| ], |
| static_libs: [ |
| "framework-annotations-lib", // should it be "libs" instead? |
| ], |
| 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-helper-libcore-runtime", |
| ], |
| sdk_version: "core_current", |
| 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.impl", |
| "framework-minus-apex.ravenwood", |
| "ravenwood-framework", |
| "services.core.ravenwood", |
| "junit", |
| "framework-annotations-lib", |
| "ravenwood-helper-framework-runtime", |
| "ravenwood-helper-libcore-runtime", |
| "hoststubgen-helper-runtime.ravenwood", |
| "mockito-ravenwood-prebuilt", |
| ], |
| visibility: ["//frameworks/base"], |
| jarjar_rules: ":ravenwood-services-jarjar-rules", |
| } |
| |
| java_device_for_host { |
| name: "ravenwood-junit-impl-for-ravenizer", |
| libs: [ |
| "ravenwood-junit-impl", |
| ], |
| visibility: [":__subpackages__"], |
| } |
| |
| // 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 module_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. |
| // We can't use test_current here because this library needs to be statically |
| // linked to mainline tests as well, which can't use test APIs because they |
| // need to be able to run on multiple API levels. |
| java_library { |
| name: "ravenwood-junit", |
| srcs: [ |
| "junit-src/**/*.java", |
| "junit-stub-src/**/*.java", |
| "junit-flag-src/**/*.java", |
| ], |
| sdk_version: "module_current", |
| static_libs: [ |
| "ravenwood-runtime-common", |
| "ravenwood-runtime-common-device", |
| ], |
| libs: [ |
| "junit", |
| "flag-junit", |
| "framework-annotations-lib", |
| ], |
| 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-framework-jarjar-rules", |
| srcs: ["texts/ravenwood-framework-jarjar-rules.txt"], |
| visibility: ["//frameworks/base"], |
| } |
| |
| filegroup { |
| name: "ravenwood-services-jarjar-rules", |
| srcs: ["texts/ravenwood-services-jarjar-rules.txt"], |
| visibility: ["//frameworks/base"], |
| } |
| |
| cc_defaults { |
| name: "ravenwood_jni_defaults", |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| "-Wno-unused-parameter", |
| "-Wthread-safety", |
| ], |
| static_libs: [ |
| "libnativehelper_jvm", |
| ], |
| shared_libs: [ |
| "liblog", |
| ], |
| } |
| |
| // We need this as a separate library because we need to overload the |
| // sysprop symbols before libbase is loaded into the process |
| cc_library_host_shared { |
| name: "libravenwood_sysprop", |
| defaults: ["ravenwood_jni_defaults"], |
| srcs: ["runtime-jni/ravenwood_sysprop.cpp"], |
| } |
| |
| cc_library_host_shared { |
| name: "libravenwood_runtime", |
| defaults: ["ravenwood_jni_defaults"], |
| srcs: [ |
| "runtime-jni/ravenwood_runtime.cpp", |
| "runtime-jni/ravenwood_os_constants.cpp", |
| ], |
| shared_libs: [ |
| "libbase", |
| "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-base_all{hoststubgen_framework-minus-apex_stats.csv}", |
| ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_apis.csv}", |
| ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_keep_all.txt}", |
| ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_dump.txt}", |
| ":services.core.ravenwood-base{hoststubgen_services.core_stats.csv}", |
| ":services.core.ravenwood-base{hoststubgen_services.core_apis.csv}", |
| ":services.core.ravenwood-base{hoststubgen_services.core_keep_all.txt}", |
| ":services.core.ravenwood-base{hoststubgen_services.core_dump.txt}", |
| ], |
| } |
| |
| java_library { |
| name: "services.fakes.ravenwood-jarjar", |
| installable: false, |
| srcs: [":services.fakes-sources"], |
| libs: [ |
| "ravenwood-framework", |
| "services.core.ravenwood", |
| ], |
| jarjar_rules: ":ravenwood-services-jarjar-rules", |
| visibility: ["//visibility:private"], |
| } |
| |
| java_library { |
| name: "mockito-ravenwood-prebuilt", |
| installable: false, |
| static_libs: [ |
| "mockito-robolectric-prebuilt", |
| ], |
| } |
| |
| java_library { |
| name: "inline-mockito-ravenwood-prebuilt", |
| installable: false, |
| static_libs: [ |
| "inline-mockito-robolectric-prebuilt", |
| ], |
| } |
| |
| // JARs in "ravenwood-runtime" are set to the classpath, sorted alphabetically. |
| // Rename some of the dependencies to make sure they're included in the intended order. |
| |
| java_library { |
| name: "100-framework-minus-apex.ravenwood", |
| installable: false, |
| static_libs: ["framework-minus-apex.ravenwood"], |
| visibility: ["//visibility:private"], |
| } |
| |
| java_library { |
| name: "200-kxml2-android", |
| installable: false, |
| static_libs: ["kxml2-android"], |
| visibility: ["//visibility:private"], |
| } |
| |
| java_library { |
| name: "z00-all-updatable-modules-system-stubs", |
| installable: false, |
| static_libs: ["all-updatable-modules-system-stubs-for-host"], |
| visibility: ["//visibility:private"], |
| } |
| |
| android_ravenwood_libgroup { |
| name: "ravenwood-runtime", |
| data: [ |
| ":system-build.prop", |
| ":framework-res", |
| ":ravenwood-empty-res", |
| ":framework-platform-compat-config", |
| ":services-platform-compat-config", |
| ], |
| libs: [ |
| "100-framework-minus-apex.ravenwood", |
| "200-kxml2-android", |
| |
| "ravenwood-runtime-common-ravenwood", |
| |
| "android.test.mock.ravenwood", |
| "ravenwood-helper-runtime", |
| "hoststubgen-helper-runtime.ravenwood", |
| "services.core.ravenwood-jarjar", |
| "services.fakes.ravenwood-jarjar", |
| |
| // ICU |
| "core-icu4j-for-host.ravenwood", |
| "icu4j-icudata-jarjar", |
| "icu4j-icutzdata-jarjar", |
| |
| // Provide runtime versions of utils linked in below |
| "junit", |
| "truth", |
| "flag-junit", |
| "ravenwood-framework", |
| "ravenwood-junit-impl", |
| "ravenwood-junit-impl-flag", |
| "mockito-ravenwood-prebuilt", |
| "inline-mockito-ravenwood-prebuilt", |
| |
| // It's a stub, so it should be towards the end. |
| "z00-all-updatable-modules-system-stubs", |
| ], |
| jni_libs: [ |
| // Libraries has to be loaded in the following order |
| "libravenwood_sysprop", |
| "libravenwood_runtime", |
| "libandroid_runtime", |
| ], |
| } |
| |
| android_ravenwood_libgroup { |
| name: "ravenwood-utils", |
| libs: [ |
| "junit", |
| "truth", |
| "flag-junit", |
| "ravenwood-framework", |
| "ravenwood-junit", |
| "mockito-ravenwood-prebuilt", |
| "inline-mockito-ravenwood-prebuilt", |
| ], |
| } |
| |
| build = [ |
| "Framework.bp", |
| ] |