# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//zircon/system/ulib/c/libc.gni")

source_set("locale") {
  deps = [ "//zircon/third_party/ulib/musl:musl_internal" ]
  sources = [
    "c_locale.c",
    "catclose.c",
    "catgets.c",
    "catopen.c",
    "duplocale.c",
    "freelocale.c",
    "iconv.c",
    "langinfo.c",
    "locale_map.c",
    "localeconv.c",
    "newlocale.c",
    "setlocale.c",
    "strfmon.c",
    "uselocale.c",
    "wcscoll.c",
    "wcsxfrm.c",
  ]

  if (!use_llvm_libc_string_functions) {
    sources += [
      "strcoll.c",
      "strxfrm.c",
    ]
  }

  configs -= [ "//build/config:symbol_visibility_hidden" ]

  # TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
