summaryrefslogtreecommitdiffstats
path: root/third_party/mach_override/BUILD.gn
blob: ed1c3316a998d60c86a17a799ccdb1fd806c71e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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.

config("libudis86_warnings") {
  if (is_clang) {
    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",
  ]

  # syn.c doesn't specify a return value when it issues an assertion.
  cflags = [ "-Wno-return-type" ]

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

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

  if (is_clang) {
    # For UD_ASSERT(!"message");
    configs -= [ "//build/config/clang:extra_warnings" ]
  }
}

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