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

assert(is_mac || is_ios)

config("libudis86_warnings") {
  cflags = [
    # syn.c contains a switch with an assert(false) in a default:
    # block.  In release builds, the function is missing a return.
    "-Wno-return-type",

    # Fires once in decode.c.
    "-Wno-sometimes-uninitialized",
  ]
}

static_library("libudis86") {
  sources = [
    "libudis86/decode.c",
    "libudis86/decode.h",
    "libudis86/extern.h",
    "libudis86/input.c",
    "libudis86/input.h",
    "libudis86/itab.c",
    "libudis86/itab.h",
    "libudis86/syn-att.c",
    "libudis86/syn-intel.c",
    "libudis86/syn.c",
    "libudis86/syn.h",
    "libudis86/types.h",
    "libudis86/udint.h",
    "libudis86/udis86.c",
    "udis86.h",
  ]
  defines = [
    "HAVE_ASSERT_H",
    "HAVE_STRING_H",
  ]

  configs -= [
    "//build/config/compiler:chromium_code",

    # For UD_ASSERT(!"message");
    "//build/config/clang:extra_warnings",
  ]
  configs += [
    "//build/config/compiler:no_chromium_code",

    # Must be after no_chromium_code for warning flags to be ordered correctly.
    ":libudis86_warnings",
  ]
}

static_library("mach_override") {
  sources = [
    "mach_override.c",
    "mach_override.h",
  ]
  deps = [
    ":libudis86",
  ]
}
