import("//build/config/linux/pkg_config.gni")

declare_args() {
  # Tells icu to load an external data file rather than rely on the icudata
  # being linked directly into the binary.
  icu_use_data_file = true
  # If true, compile icu into a standalone static library. Currently this is
  # only useful on Chrome OS.
  icu_disable_thin_archive = false
}

pkg_config("system_icui18n") {
  packages = [ "icu-i18n" ]
  if (is_win && !is_mingw) {
    extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU
  }
}

pkg_config("system_icuuc") {
  packages = [ "icu-uc" ]
  if (is_win && !is_mingw) {
    extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU
  }
}

group("icu") {
  public_deps = [
    ":icui18n",
    ":icuuc",
  ]
}

config("icu_config") {
  defines = [
    "USING_SYSTEM_ICU=1",
  ]
  if(is_win){
    if(!is_mingw && !is_component_build) {
      ldflags = ["/ignore:4099"] # needed on CI builds
    }
    defines += [ "UCHAR_TYPE=wchar_t" ]
  }
  else{
    defines += [ "UCHAR_TYPE=uint16_t" ]
  }
  if (icu_use_data_file) {
    defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
  } else {
    defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC" ]
  }
}

source_set("icui18n") {
  public_configs = [
    ":icu_config",
    ":system_icui18n"
  ]
}

source_set("icuuc") {
  public_configs = [
    ":icu_config",
    ":system_icuuc"
  ]
}

source_set("icudata") {
  public_configs = [
    ":icu_config",
  ]
}
