# Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

static_library("libdouble_conversion") {
  configs += [
    "../../..:dart_arch_config",
    "../../..:dart_config",
    "../../..:dart_os_config",
  ]
  if (is_fuchsia) {
    configs -= [ "//build/config:symbol_visibility_hidden" ]
  }
  sources = [
    "bignum-dtoa.cc",
    "bignum-dtoa.h",
    "bignum.cc",
    "bignum.h",
    "cached-powers.cc",
    "cached-powers.h",
    "diy-fp.cc",
    "diy-fp.h",
    "double-conversion.cc",
    "double-conversion.h",
    "fast-dtoa.cc",
    "fast-dtoa.h",
    "fixed-dtoa.cc",
    "fixed-dtoa.h",
    "ieee.h",
    "strtod.cc",
    "strtod.h",
    "utils.h",
  ]
  include_dirs = [ "." ]
}
