| 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.c", |
| "InstrProfilingInternal.h", |
| "InstrProfilingMerge.c", |
| "InstrProfilingMergeFile.c", |
| "InstrProfilingNameVar.c", |
| "InstrProfilingPlatformAIX.c", |
| "InstrProfilingPlatformDarwin.c", |
| "InstrProfilingPlatformFuchsia.c", |
| "InstrProfilingPlatformLinux.c", |
| "InstrProfilingPlatformOther.c", |
| "InstrProfilingPlatformWindows.c", |
| "InstrProfilingPort.h", |
| "InstrProfilingRuntime.cpp", |
| "InstrProfilingUtil.c", |
| "InstrProfilingUtil.h", |
| "InstrProfilingValue.c", |
| "InstrProfilingVersionVar.c", |
| "InstrProfilingWriter.c", |
| ] |
| if (current_os == "win") { |
| sources += [ |
| "WindowsMMap.c", |
| "WindowsMMap.h", |
| ] |
| } |
| |
| if (current_os != "win") { |
| defines = [ |
| "COMPILER_RT_HAS_UNAME", |
| "COMPILER_RT_HAS_ATOMICS", |
| "COMPILER_RT_HAS_FCNTL_LCK", |
| ] |
| } |
| } |