Adjust build and test scripts for handling ICU prebuilts.
Test: run-tests, buildbot-build.sh, run-libcore-tests, run-libjdwp-tests, gtests (on device and host)
Test: gart/tools/golem/build-target.sh, and art/build/apex/runtests.sh.
Bug: 157734636
Bug: 129332183
Change-Id: I8ae469ade6adb0b9a2b7617598a4e68796a0f8d3
diff --git a/Android.mk b/Android.mk
index d8340bd..b2a0157 100644
--- a/Android.mk
+++ b/Android.mk
@@ -468,8 +468,12 @@
.PHONY: build-art
build-art: build-art-host build-art-target
+# For host, we extract the ICU data from the apex and install it to HOST_OUT/I18N_APEX.
.PHONY: build-art-host
-build-art-host: $(HOST_OUT_EXECUTABLES)/art $(ART_HOST_DEPENDENCIES) $(HOST_CORE_IMG_OUTS)
+build-art-host: $(HOST_OUT_EXECUTABLES)/art $(ART_HOST_DEPENDENCIES) $(HOST_CORE_IMG_OUTS) $(I18N_APEX) deapexer
+ $(call extract-from-apex,$(I18N_APEX))
+ mkdir -p $(HOST_OUT)/$(I18N_APEX)/
+ cp -R $(TARGET_OUT)/apex/$(I18N_APEX)/etc/ $(HOST_OUT)/$(I18N_APEX)/
.PHONY: build-art-target
build-art-target: $(TARGET_OUT_EXECUTABLES)/art $(ART_TARGET_DEPENDENCIES) $(TARGET_CORE_IMG_OUTS)
@@ -660,16 +664,6 @@
# ART APEX.
# Also include:
-# - a copy of the ICU prebuilt .dat file in /system/etc/icu on target
-# (see module `icu-data-art-test-i18n`); and
-# so that it can be found even if the ART APEX is not available, by setting the
-# environment variable `ART_TEST_ANDROID_ART_ROOT` to "/system" on device. This
-# is a temporary change needed until Golem fully supports the ART APEX.
-#
-# TODO(b/129332183): Remove this when Golem has full support for the
-# ART APEX.
-
-# Also include:
# - a copy of the time zone data prebuilt files in
# /system/etc/tzdata_module/etc/tz and /system/etc/tzdata_module/etc/icu
# on target, (see modules `tzdata-art-test-tzdata`,
@@ -691,7 +685,6 @@
$(ART_TARGET_SHARED_LIBRARY_BENCHMARK) \
libartpalette-system \
libc.bootstrap libdl.bootstrap libdl_android.bootstrap libm.bootstrap \
- icu-data-art-test-i18n \
tzdata-art-test-tzdata tzlookup.xml-art-test-tzdata \
tz_version-art-test-tzdata icu_overlay-art-test-tzdata \
standalone-apex-files
diff --git a/build/Android.common_path.mk b/build/Android.common_path.mk
index 54e337e..bcd5c62 100644
--- a/build/Android.common_path.mk
+++ b/build/Android.common_path.mk
@@ -67,7 +67,7 @@
ART_CORE_SHARED_LIBRARIES := libjavacore libopenjdk libopenjdkjvm libopenjdkjvmti
ART_CORE_SHARED_DEBUG_LIBRARIES := libopenjdkd libopenjdkjvmd libopenjdkjvmtid
-ART_HOST_CORE_SHARED_LIBRARIES := $(ART_CORE_SHARED_LIBRARIES) libandroidicu-host libicuuc-host libicui18n-host libicu_jni
+ART_HOST_CORE_SHARED_LIBRARIES := $(ART_CORE_SHARED_LIBRARIES) libicuuc-host libicui18n-host libicu_jni
ART_HOST_SHARED_LIBRARY_DEPENDENCIES := $(foreach lib,$(ART_HOST_CORE_SHARED_LIBRARIES), $(ART_HOST_OUT_SHARED_LIBRARIES)/$(lib)$(ART_HOST_SHLIB_EXTENSION))
ART_HOST_SHARED_LIBRARY_DEBUG_DEPENDENCIES := $(foreach lib,$(ART_CORE_SHARED_DEBUG_LIBRARIES), $(ART_HOST_OUT_SHARED_LIBRARIES)/$(lib)$(ART_HOST_SHLIB_EXTENSION))
ifdef HOST_2ND_ARCH
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index dc5015f..4719429 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -258,7 +258,7 @@
ifeq ($(ART_BUILD_TARGET),true)
$(foreach name,$(ART_TARGET_GTEST_NAMES), $(eval $(call add-art-gtest-dependencies,$(name),)))
ART_TEST_TARGET_GTEST_DEPENDENCIES += \
- libicu_jni.com.android.i18n \
+ com.android.i18n \
libjavacore.com.android.art.testing \
libopenjdkd.com.android.art.testing \
com.android.art.testing \
diff --git a/tools/bootjars.sh b/tools/bootjars.sh
index 5516bfb..6c39d31 100755
--- a/tools/bootjars.sh
+++ b/tools/bootjars.sh
@@ -113,7 +113,12 @@
if [[ $jar == "conscrypt" ]]; then
echo "$intermediates_dir/JAVA_LIBRARIES/${jar}.com.android.conscrypt_intermediates/classes.jar"
elif [[ $jar == "core-icu4j" ]]; then
- echo "$intermediates_dir/JAVA_LIBRARIES/${jar}.com.android.i18n_intermediates/classes.jar"
+ # The location of ICU is different on an unbundled build.
+ if [[ -f "$intermediates_dir/JAVA_LIBRARIES/${jar}.com.android.i18n_intermediates/classes.jar" ]]; then
+ echo "$intermediates_dir/JAVA_LIBRARIES/${jar}.com.android.i18n_intermediates/classes.jar"
+ else
+ echo "$intermediates_dir/JAVA_LIBRARIES/${jar}_intermediates/classes.jar"
+ fi
else
echo "$intermediates_dir/JAVA_LIBRARIES/${jar}.com.android.art.testing_intermediates/classes.jar"
fi
diff --git a/tools/buildbot-build.sh b/tools/buildbot-build.sh
index 9f2b9a8..5a6c0d7 100755
--- a/tools/buildbot-build.sh
+++ b/tools/buildbot-build.sh
@@ -86,8 +86,8 @@
make_command+=" libnetd_client-target toybox sh"
make_command+=" debuggerd su gdbserver"
make_command+=" libstdc++ "
- # vogar requires the class files for conscrypt.
- make_command+=" conscrypt "
+ # vogar requires the class files for conscrypt and ICU.
+ make_command+=" conscrypt core-icu4j"
make_command+=" ${ANDROID_PRODUCT_OUT#"${ANDROID_BUILD_TOP}/"}/system/etc/public.libraries.txt"
# Targets required to generate a linker configuration for device within the
# chroot environment. The *.libraries.txt targets are required by