diff options
| -rw-r--r-- | ravenwood/Android.bp | 35 | ||||
| -rw-r--r-- | ravenwood/CleanSpec.mk | 45 |
2 files changed, 78 insertions, 2 deletions
diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp index 59043a8356ae..8e998426685b 100644 --- a/ravenwood/Android.bp +++ b/ravenwood/Android.bp @@ -345,14 +345,41 @@ java_library { ], } +// We define our own version of platform_compat_config's here, because: +// - The original version (e.g. "framework-platform-compat-config) is built from +// the output file of the device side jar, rather than the host jar, meaning +// they're slow to build because they depend on D8/R8 output. +// - The original services one ("services-platform-compat-config") is built from services.jar, +// which includes service.permission, which is very slow to rebuild because of kotlin. +// +// Because we're re-defining the same compat-IDs that are defined elsewhere, +// they should all have `include_in_merged_xml: false`. Otherwise, generating +// merged_compat_config.xml would fail due to duplicate IDs. +// +// These module names must end with "compat-config" because these will be used as the filename, +// and at runtime, we only loads files that match `*compat-config.xml`. +platform_compat_config { + name: "ravenwood-framework-platform-compat-config", + src: ":framework-minus-apex-for-host", + include_in_merged_xml: false, + visibility: ["//visibility:private"], +} + +platform_compat_config { + name: "ravenwood-services.core-platform-compat-config", + src: ":services.core-for-host", + include_in_merged_xml: false, + visibility: ["//visibility:private"], +} + filegroup { name: "ravenwood-data", device_common_srcs: [ ":system-build.prop", ":framework-res", ":ravenwood-empty-res", - ":framework-platform-compat-config", - ":services-platform-compat-config", + ":ravenwood-framework-platform-compat-config", + ":ravenwood-services.core-platform-compat-config", "texts/ravenwood-build.prop", ], device_first_srcs: [ @@ -616,6 +643,10 @@ android_ravenwood_libgroup { "android.test.mock.ravenwood", "ravenwood-helper-runtime", "hoststubgen-helper-runtime.ravenwood", + + // Note, when we include other services.* jars, we'll need to add + // platform_compat_config for that module too. + // See ravenwood-services.core-platform-compat-config above. "services.core.ravenwood-jarjar", "services.fakes.ravenwood-jarjar", diff --git a/ravenwood/CleanSpec.mk b/ravenwood/CleanSpec.mk new file mode 100644 index 000000000000..50d2fab40326 --- /dev/null +++ b/ravenwood/CleanSpec.mk @@ -0,0 +1,45 @@ +# Copyright (C) 2024 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. +# + +# If you don't need to do a full clean build but would like to touch +# a file or delete some intermediate files, add a clean step to the end +# of the list. These steps will only be run once, if they haven't been +# run before. +# +# E.g.: +# $(call add-clean-step, touch -c external/sqlite/sqlite3.h) +# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) +# +# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with +# files that are missing or have been moved. +# +# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. +# Use $(OUT_DIR) to refer to the "out" directory. +# +# If you need to re-do something that's already mentioned, just copy +# the command and add it to the bottom of the list. E.g., if a change +# that you made last week required touching a file and a change you +# made today requires touching the same file, just copy the old +# touch step and add it to the end of the list. +# +# ***************************************************************** +# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THE BANNER +# ***************************************************************** + +$(call add-clean-step, rm -rf $(OUT_DIR)/host/linux-x86/testcases/ravenwood-runtime) + +# ****************************************************************** +# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER +# ****************************************************************** |