summaryrefslogtreecommitdiffstats
path: root/llvm/utils/gn/secondary/compiler-rt/lib/profile/BUILD.gn
blob: 36e8b15a67751e1557ab5ce2dbd2ea5dddc17222 (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
67
68
69
import("//compiler-rt/target.gni")

static_library("profile") {
  output_dir = crt_current_out_dir
  if (current_os == "mac") {
    output_name = "clang_rt.profile_osx"
  } else {
    output_name = "clang_rt.profile$crt_current_target_suffix"
  }

  complete_static_lib = true
  configs -= [ "//llvm/utils/gn/build:thin_archive" ]

  cflags = []
  if (current_os != "win") {
    cflags = [
      "-fPIC",
      "-Wno-pedantic",
    ]
  } else {
    # This appears to be a C-only warning banning the use of locals in
    # aggregate initializers. All other compilers accept this, though.
    #     nonstandard extension used : 'identifier' :
    #     cannot be initialized using address of automatic variable
    cflags += [ "/wd4221" ]
  }

  include_dirs = [
    "..",
    "../../include",
  ]

  sources = [
    "GCDAProfiling.c",
    "InstrProfiling.c",
    "InstrProfiling.h",
    "InstrProfilingBuffer.c",
    "InstrProfilingFile.c",
    "InstrProfilingInternal.h",
    "InstrProfilingMerge.c",
    "InstrProfilingMergeFile.c",
    "InstrProfilingNameVar.c",
    "InstrProfilingPlatformDarwin.c",
    "InstrProfilingPlatformFuchsia.c",
    "InstrProfilingPlatformLinux.c",
    "InstrProfilingPlatformOther.c",
    "InstrProfilingPlatformWindows.c",
    "InstrProfilingPort.h",
    "InstrProfilingRuntime.cpp",
    "InstrProfilingUtil.c",
    "InstrProfilingUtil.h",
    "InstrProfilingValue.c",
    "InstrProfilingWriter.c",
  ]
  if (current_os == "win") {
    sources += [
      "WindowsMMap.c",
      "WindowsMMap.h",
    ]
  }

  if (current_os != "win") {
    defines = [
      "COMPILER_RT_TARGET_HAS_ATOMICS",
      "COMPILER_RT_TARGET_HAS_FCNTL_LCK",
      "COMPILER_RT_TARGET_HAS_UNAME",
    ]
  }
}
OpenPOWER on IntegriCloud