Include ICU4C cc_library_headers instead of a directory

It includes the headers not in the directory, e.g. uconfig_local.h.
It may add more restriction during the build time,
but no runtime difference is expected.

Also, add ANDROID_LINK_SHARED_ICU4C flag to avoid
the new build-time error, since ART is allowed to link directly
to libicuuc.

Bug: 117094880
Test: m
Change-Id: I029532d6738aa6ade4f8f92c5a65f1a15e9de25f
diff --git a/runtime/Android.bp b/runtime/Android.bp
index 60f1af1..8fd87ea 100644
--- a/runtime/Android.bp
+++ b/runtime/Android.bp
@@ -345,6 +345,11 @@
             static_libs: [
                 "libz",  // For adler32.
             ],
+            cflags: [
+                // ART is allowed to link to libicuuc directly
+                // since they are in the same module
+                "-DANDROID_LINK_SHARED_ICU4C",
+            ],
         },
         android_arm: {
             ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
@@ -377,12 +382,12 @@
     export_generated_headers: ["cpp-define-generator-asm-support"],
     include_dirs: [
         "art/sigchainlib",
-        "external/icu/icu4c/source/common",
         "external/zlib",
     ],
     header_libs: [
         "art_cmdlineparser_headers",
         "cpp-define-generator-definitions",
+        "libicuuc_headers",
         "libnativehelper_header_only",
         "jni_platform_headers",
     ],