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

source_set("math") {
  include_dirs = [ "//zircon/third_party/ulib/musl/third_party/include" ]
  sources = [
    "__expo2.c",
    "__expo2f.c",
    "__fpclassify.c",
    "__fpclassifyf.c",
    "__fpclassifyl.c",
    "__invtrigl.c",
    "__signbit.c",
    "__signbitf.c",
    "__signbitl.c",
    "acosh.c",
    "acoshf.c",
    "acoshl.c",
    "asinh.c",
    "asinhf.c",
    "asinhl.c",
    "atanh.c",
    "atanhf.c",
    "atanhl.c",
    "ceil.c",
    "ceilf.c",
    "copysign.c",
    "copysignf.c",
    "copysignl.c",
    "cosh.c",
    "coshf.c",
    "coshl.c",
    "cosl.c",
    "exp10.c",
    "exp10f.c",
    "exp10l.c",
    "fdim.c",
    "fdimf.c",
    "fdiml.c",
    "finite.c",
    "finitef.c",
    "floor.c",
    "floorf.c",
    "fmax.c",
    "fmaxf.c",
    "fmaxl.c",
    "fmin.c",
    "fminf.c",
    "fminl.c",
    "fmod.c",
    "fmodf.c",
    "frexp.c",
    "frexpf.c",
    "frexpl.c",
    "hypot.c",
    "hypotf.c",
    "hypotl.c",
    "ilogb.c",
    "ilogbf.c",
    "ilogbl.c",
    "ldexp.c",
    "ldexpf.c",
    "ldexpl.c",
    "lgamma.c",
    "lgammaf.c",
    "llround.c",
    "llroundf.c",
    "llroundl.c",
    "logb.c",
    "logbf.c",
    "logbl.c",
    "lround.c",
    "lroundf.c",
    "lroundl.c",
    "modf.c",
    "modff.c",
    "modfl.c",
    "nan.c",
    "nanf.c",
    "nanl.c",
    "nearbyint.c",
    "nearbyintf.c",
    "nearbyintl.c",
    "nextafter.c",
    "nextafterf.c",
    "nextafterl.c",
    "nexttoward.c",
    "nexttowardf.c",
    "nexttowardl.c",
    "remainder.c",
    "remainderf.c",
    "remquo.c",
    "remquof.c",
    "remquol.c",
    "rint.c",
    "rintf.c",
    "round.c",
    "roundf.c",
    "roundl.c",
    "scalbln.c",
    "scalblnf.c",
    "scalblnl.c",
    "scalbn.c",
    "scalbnf.c",
    "scalbnl.c",
    "signgam.c",
    "significand.c",
    "significandf.c",
    "sincosl.c",
    "sinh.c",
    "sinhf.c",
    "sinhl.c",
    "sinl.c",
    "tanh.c",
    "tanhf.c",
    "tanhl.c",
    "tanl.c",
    "tgamma.c",
    "tgammaf.c",
    "trunc.c",
    "truncf.c",
  ]
  if (current_cpu == "x64") {
    sources += [
      "x86_64/__invtrigl.S",
      "x86_64/acosl.S",
      "x86_64/asinl.S",
      "x86_64/atan2l.S",
      "x86_64/atanl.S",
      "x86_64/ceill.S",
      "x86_64/exp2l.S",
      "x86_64/expl.S",
      "x86_64/expm1l.S",
      "x86_64/fabsl.S",
      "x86_64/floorl.S",
      "x86_64/fmodl.S",
      "x86_64/llrint.S",
      "x86_64/llrintf.S",
      "x86_64/llrintl.S",
      "x86_64/log10l.S",
      "x86_64/log1pl.S",
      "x86_64/log2l.S",
      "x86_64/logl.S",
      "x86_64/lrint.S",
      "x86_64/lrintf.S",
      "x86_64/lrintl.S",
      "x86_64/remainderl.S",
      "x86_64/rintl.S",
      "x86_64/sqrtl.S",
      "x86_64/truncl.S",
    ]
  } else {
    sources += [
      "ceill.c",
      "fabsl.c",
      "floorl.c",
      "fmodl.c",
      "llrint.c",
      "llrintf.c",
      "llrintl.c",
      "lrint.c",
      "lrintf.c",
      "lrintl.c",
      "remainderl.c",
      "rintl.c",
      "sqrtl.c",
      "truncl.c",
    ]
  }
  deps = [
    "//zircon/third_party/ulib/musl:musl_internal",
    "//zircon/third_party/ulib/musl/third_party/math",
  ]

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

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