fuchsia: Support building for Fuchsia

GN configuration changes needed to build for Fuchsia.

Change-Id: Ia00f43a809c2f73e2ff918aa6f7bfe9079cc8130
diff --git a/BUILD.gn b/BUILD.gn
index c782db0..14d986a 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -82,7 +82,7 @@
       "/wd4267",  # Conversion from size_t on 64-bits.
       "/utf-8",   # ICU source files are in UTF-8.
     ]
-  } else if (is_linux || is_android) {
+  } else if (is_linux || is_android || is_fuchsia) {
     cflags += [
       "-Wno-unused-function",
     ]
@@ -100,7 +100,7 @@
       "-Wno-unused-variable",
     ]
   }
-  if (is_clang || is_linux || is_android) {
+  if (is_clang || is_linux || is_android || is_fuchsia) {
     cflags += [
       # ICU uses its own deprecated functions.
       "-Wno-deprecated-declarations",
@@ -108,7 +108,7 @@
   }
 }
 
-component("icui18n") {
+shared_library("icui18n") {
   # find  source/i18n -maxdepth 1  ! -type d  | egrep  '\.(c|cpp|h)$' |\
   # sort | sed 's/^\(.*\)$/    "\1",/'
   sources = [
@@ -598,25 +598,16 @@
 
   # ICU uses RTTI, replace the default "no rtti" config.
   configs -= [
-    "//build/config/compiler:no_rtti",  # ICU uses RTTI.
-    "//build/config/compiler:chromium_code",
+    "//build/config:no_rtti",
+    "//build/config:symbol_visibility_hidden",
   ]
-  configs += [
-    "//build/config/compiler:rtti",
-    "//build/config/compiler:no_chromium_code",
-  ]
+  configs += [ "//build/config:rtti" ]
 
   configs += [ ":icu_code" ]
   public_configs = [ ":icu_config" ]
-
-  if (is_fuchsia) {
-    # Fuchsia puts its own libicui18n.so in /system/lib where we need to put our
-    # .so when doing component builds, so we need to give this a different name.
-    output_name = "icui18n_cr"
-  }
 }
 
-component("icuuc") {
+shared_library("icuuc") {
   # find  source/common -maxdepth 1  ! -type d  | egrep  '\.(c|cpp|h)$' |\
   # sort | sed 's/^\(.*\)$/    "\1",/'
   sources = [
@@ -1022,13 +1013,10 @@
   ]
 
   configs -= [
-    "//build/config/compiler:no_rtti",  # ICU uses RTTI.
-    "//build/config/compiler:chromium_code",
+    "//build/config:no_rtti",
+    "//build/config:symbol_visibility_hidden",
   ]
-  configs += [
-    "//build/config/compiler:rtti",
-    "//build/config/compiler:no_chromium_code",
-  ]
+  configs += [ "//build/config:rtti" ]
   configs += [ ":icu_code" ]
 
   public_configs = [ ":icu_config" ]
@@ -1037,12 +1025,6 @@
     sources += [ "source/stubdata/stubdata.cpp" ]
     defines += [ "U_ICUDATAENTRY_IN_COMMON" ]
   }
-
-  if (is_fuchsia) {
-    # Fuchsia puts its own libicuuc.so in /system/lib where we need to put our
-    # .so when doing component builds, so we need to give this a different name.
-    output_name = "icuuc_cr"
-  }
 }
 
 if (is_android && enable_java_templates) {