# Copyright 2017 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.

config("no-warnings") {
  # Suppress warnings in upstream code that are triggered by Fuchsia compilation flags.
  cflags = [ "-Wno-conversion" ]
}

static_library("libutf") {
  sources = [
    "fgetrune.c",
    "fputrune.c",
    "isalnumrune.c",
    "isalpharune.c",
    "isblankrune.c",
    "iscntrlrune.c",
    "isdigitrune.c",
    "isgraphrune.c",
    "isprintrune.c",
    "ispunctrune.c",
    "isspacerune.c",
    "istitlerune.c",
    "isxdigitrune.c",
    "lowerrune.c",
    "rune.c",
    "runetype.c",
    "runetype.h",
    "upperrune.c",
    "utf.c",
    "utftorunestr.c",
  ]
  public_configs = [ ":no-warnings" ]
}
