Roll src/third_party/WebKit f007c95:0171005 (svn 185074:185088)
[chromium-blink-merge.git] / breakpad / BUILD.gn
blob5372d2b85243698fe920ffedab0a4f8b150e9015
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 config("tools_config") {
6   include_dirs = [ "src", "src/third_party" ]
7   if (is_android) {
8     defines = [ "__ANDROID__" ]
9   }
10   if (is_clang) {
11     cflags = [ "-Wno-tautological-constant-out-of-range-compare" ]
12   }
15 config("internal_config") {
16   include_dirs = [ "src" ]
17   defines = []
18   if (is_debug) {
19     # This is needed for GTMLogger to work correctly.
20     defines += [ "DEBUG" ]
21   }
22   if (is_android) {
23     defines += [ "__ANDROID__" ]
24   }
27 config("client_config") {
28   include_dirs = [ "src" ]
29   if (is_android) {
30     include_dirs += [ "src/common/android/include" ]
31   }
34 config("handler_config") {
35   include_dirs = [
36     "src",
37   ]
40 # minidump_stackwalk and minidump_dump are tool-type executables that do
41 # not build on iOS.
42 if (current_toolchain == host_toolchain && !is_win) {
43   executable("minidump_stackwalk") {
44     sources = [
45       "src/processor/basic_code_module.h",
46       "src/processor/basic_code_modules.cc",
47       "src/processor/basic_code_modules.h",
48       "src/processor/basic_source_line_resolver.cc",
49       "src/processor/binarystream.cc",
50       "src/processor/binarystream.h",
51       "src/processor/call_stack.cc",
52       "src/processor/cfi_frame_info.cc",
53       "src/processor/cfi_frame_info.h",
54       "src/processor/disassembler_x86.cc",
55       "src/processor/disassembler_x86.h",
56       "src/processor/dump_context.cc",
57       "src/processor/dump_object.cc",
58       "src/processor/exploitability.cc",
59       "src/processor/logging.cc",
60       "src/processor/logging.h",
61       "src/processor/minidump.cc",
62       "src/processor/minidump_processor.cc",
63       "src/processor/minidump_stackwalk.cc",
64       "src/processor/pathname_stripper.cc",
65       "src/processor/pathname_stripper.h",
66       "src/processor/process_state.cc",
67       "src/processor/simple_symbol_supplier.cc",
68       "src/processor/simple_symbol_supplier.h",
69       "src/processor/source_line_resolver_base.cc",
70       "src/processor/stack_frame_cpu.cc",
71       "src/processor/stack_frame_symbolizer.cc",
72       "src/processor/stackwalker.cc",
73       "src/processor/stackwalker_amd64.cc",
74       "src/processor/stackwalker_amd64.h",
75       "src/processor/stackwalker_arm.cc",
76       "src/processor/stackwalker_arm.h",
77       "src/processor/stackwalker_arm64.cc",
78       "src/processor/stackwalker_arm64.h",
79       "src/processor/stackwalker_mips.cc",
80       "src/processor/stackwalker_mips.h",
81       "src/processor/stackwalker_ppc.cc",
82       "src/processor/stackwalker_ppc.h",
83       "src/processor/stackwalker_ppc64.cc",
84       "src/processor/stackwalker_ppc64.h",
85       "src/processor/stackwalker_sparc.cc",
86       "src/processor/stackwalker_sparc.h",
87       "src/processor/stackwalker_x86.cc",
88       "src/processor/stackwalker_x86.h",
89       "src/processor/tokenize.cc",
90       "src/processor/tokenize.h",
91       # libdisasm
92       "src/third_party/libdisasm/ia32_implicit.c",
93       "src/third_party/libdisasm/ia32_implicit.h",
94       "src/third_party/libdisasm/ia32_insn.c",
95       "src/third_party/libdisasm/ia32_insn.h",
96       "src/third_party/libdisasm/ia32_invariant.c",
97       "src/third_party/libdisasm/ia32_invariant.h",
98       "src/third_party/libdisasm/ia32_modrm.c",
99       "src/third_party/libdisasm/ia32_modrm.h",
100       "src/third_party/libdisasm/ia32_opcode_tables.c",
101       "src/third_party/libdisasm/ia32_opcode_tables.h",
102       "src/third_party/libdisasm/ia32_operand.c",
103       "src/third_party/libdisasm/ia32_operand.h",
104       "src/third_party/libdisasm/ia32_reg.c",
105       "src/third_party/libdisasm/ia32_reg.h",
106       "src/third_party/libdisasm/ia32_settings.c",
107       "src/third_party/libdisasm/ia32_settings.h",
108       "src/third_party/libdisasm/libdis.h",
109       "src/third_party/libdisasm/qword.h",
110       "src/third_party/libdisasm/x86_disasm.c",
111       "src/third_party/libdisasm/x86_format.c",
112       "src/third_party/libdisasm/x86_imm.c",
113       "src/third_party/libdisasm/x86_imm.h",
114       "src/third_party/libdisasm/x86_insn.c",
115       "src/third_party/libdisasm/x86_misc.c",
116       "src/third_party/libdisasm/x86_operand_list.c",
117       "src/third_party/libdisasm/x86_operand_list.h",
118     ]
120     defines = [ "BPLOG_MINIMUM_SEVERITY=SEVERITY_ERROR" ]
122     configs -= [ "//build/config/compiler:chromium_code" ]
123     configs += [ "//build/config/compiler:no_chromium_code" ]
124     configs += [ ":tools_config" ]
126     # Always want these files included regardless of platform.
127     set_sources_assignment_filter([])
128     sources += [
129       "src/processor/exploitability_linux.cc",
130       "src/processor/exploitability_linux.h",
131       "src/processor/exploitability_win.cc",
132       "src/processor/exploitability_win.h",
133     ]
134   }
136   executable("minidump_dump") {
137     sources = [
138       "src/processor/basic_code_module.h",
139       "src/processor/basic_code_modules.cc",
140       "src/processor/basic_code_modules.h",
141       "src/processor/dump_context.cc",
142       "src/processor/dump_object.cc",
143       "src/processor/logging.cc",
144       "src/processor/logging.h",
145       "src/processor/minidump.cc",
146       "src/processor/minidump_dump.cc",
147       "src/processor/pathname_stripper.cc",
148       "src/processor/pathname_stripper.h",
149     ]
151     configs += [ ":tools_config" ]
153     # There are some warnings in this code.
154     configs -= [ "//build/config/compiler:chromium_code" ]
155     configs += [ "//build/config/compiler:no_chromium_code" ]
156   }
159 # Mac --------------------------------------------------------------------------
161 if (current_toolchain == host_toolchain && is_mac) {
162   # TODO(GYP) This should be only 64-bit on Mac. From .gypi:
163   # Like ld, dump_syms needs to operate on enough data that it may
164   # actually need to be able to address more than 4GB. Use x86_64.
165   # Don't worry! An x86_64 dump_syms is perfectly able to dump
166   # 32-bit files.
167   executable("dump_syms") {
168     sources = [
169       "src/common/dwarf/bytereader.cc",
170       "src/common/dwarf_cfi_to_module.cc",
171       "src/common/dwarf_cu_to_module.cc",
172       "src/common/dwarf/dwarf2diehandler.cc",
173       "src/common/dwarf/dwarf2reader.cc",
174       "src/common/dwarf_line_to_module.cc",
175       "src/common/language.cc",
176       "src/common/mac/arch_utilities.cc",
177       "src/common/mac/arch_utilities.h",
178       "src/common/mac/dump_syms.mm",
179       "src/common/mac/file_id.cc",
180       "src/common/mac/macho_id.cc",
181       "src/common/mac/macho_reader.cc",
182       "src/common/mac/macho_utilities.cc",
183       "src/common/mac/macho_walker.cc",
184       "src/common/md5.cc",
185       "src/common/module.cc",
186       "src/common/stabs_reader.cc",
187       "src/common/stabs_to_module.cc",
188       "src/tools/mac/dump_syms/dump_syms_tool.mm",
189     ]
191     # For src/common/stabs_reader.h.
192     defines = [ "HAVE_MACH_O_NLIST_H" ]
193     include_dirs = [ "src/common/mac" ]
195     # The DWARF utilities require -funsigned-char.
196     cflags = [ "-funsigned-char" ]
198     configs += [ ":internal_config" ]
200     configs -= [ "//build/config/compiler:chromium_code" ]
201     configs += [ "//build/config/compiler:no_chromium_code" ]
203     # dwarf2reader.cc uses dynamic_cast.
204     configs -= [ "//build/config/compiler:no_rtti" ]
205     configs += [ "//build/config/compiler:rtti" ]
207     libs = [ "Foundation.framework" ]
209     if (!is_debug) {
210       # dump_syms crashes when built at -O1, -O2, and -O3.  It does
211       # not crash at -Os.  To play it safe, dump_syms is always built
212       # at -O0 until this can be sorted out.
213       # http://code.google.com/p/google-breakpad/issues/detail?id=329
214       configs -= [ "//build/config/compiler:optimize" ]
215       cflags += [ "-O0" ]
216     }
217   }
219   executable("symupload") {
220     sources = [
221       "src/common/mac/HTTPMultipartUpload.m",
222       "src/tools/mac/symupload/symupload.m",
223     ]
225     include_dirs = [
226       "src/common/mac"
227     ]
229     libs = [ "Foundation.framework" ]
230   }
233 if (is_mac) {
234   static_library("utilities") {
235     sources = [
236       "src/client/mac/crash_generation/ConfigFile.mm",
237       "src/client/mac/handler/breakpad_nlist_64.cc",
238       "src/client/mac/handler/dynamic_images.cc",
239       "src/client/mac/handler/minidump_generator.cc",
240       "src/client/minidump_file_writer.cc",
241       "src/common/convert_UTF.c",
242       "src/common/mac/MachIPC.mm",
243       "src/common/mac/arch_utilities.cc",
244       "src/common/mac/bootstrap_compat.cc",
245       "src/common/mac/file_id.cc",
246       "src/common/mac/launch_reporter.cc",
247       "src/common/mac/macho_id.cc",
248       "src/common/mac/macho_utilities.cc",
249       "src/common/mac/macho_walker.cc",
250       "src/common/mac/string_utilities.cc",
251       "src/common/md5.cc",
252       "src/common/simple_string_dictionary.cc",
253       "src/common/string_conversion.cc",
254     ]
256     configs += [ ":internal_config" ]
257     
258     # TODO(GYP): TODO(dpranke): Fix the compile for this.
259     sources -= [
260       "src/client/mac/handler/dynamic_images.cc",
261     ]
262   }
264   executable("crash_inspector") {
265     sources = [
266       "src/client/mac/crash_generation/Inspector.mm",
267       "src/client/mac/crash_generation/InspectorMain.mm",
268     ]
270     # TODO(GYP): 'mac_real_dsym': 1,
272     include_dirs = [
273       "src/client/apple/Framework",
274       "src/common/mac",
275       "src",
276     ]
277     libs = [
278       "CoreServices.framework",
279       "Foundation.framework",
280     ]
282     deps = [
283       ":utilities"
284     ]
285   }
287   # TODO(GYP) this target has some mac_bundle_resources stuff.
288   # executable("crash_report_sender") {
289   # }
291   config("breakpad_config") {
292     include_dirs = [ "src/client/apple/Framework" ]
293   }
295   static_library("breakpad") {
296     sources = [
297       "src/client/mac/crash_generation/crash_generation_client.cc",
298       "src/client/mac/crash_generation/crash_generation_client.h",
299       "src/client/mac/handler/protected_memory_allocator.cc",
300       "src/client/mac/handler/exception_handler.cc",
301       "src/client/mac/Framework/Breakpad.mm",
302       "src/client/mac/Framework/OnDemandServer.mm",
303     ]
305     configs += [ ":internal_config" ]
306     public_configs = [ ":breakpad_config" ]
308     defines = [ "USE_PROTECTED_ALLOCATIONS=1" ]
309     include_dirs = [
310       "src/client/apple/Framework",
311     ]
313     deps = [
314       ":utilities",
315       ":crash_inspector",
316       # TODO(GYP): Make this link
317       #":crash_report_sender",
318     ]
319   }
321   group("client") {
322     public_configs = [ ":client_config" ]
323   }
326 if (is_linux) {
327   executable("symupload") {
328     sources = [
329       "src/tools/linux/symupload/sym_upload.cc",
330       "src/common/linux/http_upload.cc",
331       "src/common/linux/http_upload.h",
332     ]
334     include_dirs = [
335       "src",
336       "src/third_party",
337     ]
339     configs += [ ":tools_config" ]
341     libs = [ "dl" ]
342   }
345 if (is_linux || is_android) {
346   if (current_toolchain == host_toolchain) {
347     # dump_syms is a host tool, so only compile it for the host system.
348     executable("dump_syms") {
349       sources = [
350         "src/common/dwarf/bytereader.cc",
351         "src/common/dwarf_cfi_to_module.cc",
352         "src/common/dwarf_cfi_to_module.h",
353         "src/common/dwarf_cu_to_module.cc",
354         "src/common/dwarf_cu_to_module.h",
355         "src/common/dwarf/dwarf2diehandler.cc",
356         "src/common/dwarf/dwarf2reader.cc",
357         "src/common/dwarf_line_to_module.cc",
358         "src/common/dwarf_line_to_module.h",
359         "src/common/language.cc",
360         "src/common/language.h",
361         "src/common/linux/crc32.cc",
362         "src/common/linux/crc32.h",
363         "src/common/linux/dump_symbols.cc",
364         "src/common/linux/dump_symbols.h",
365         "src/common/linux/elf_symbols_to_module.cc",
366         "src/common/linux/elf_symbols_to_module.h",
367         "src/common/linux/elfutils.cc",
368         "src/common/linux/elfutils.h",
369         "src/common/linux/file_id.cc",
370         "src/common/linux/file_id.h",
371         "src/common/linux/linux_libc_support.cc",
372         "src/common/linux/linux_libc_support.h",
373         "src/common/linux/memory_mapped_file.cc",
374         "src/common/linux/memory_mapped_file.h",
375         "src/common/linux/guid_creator.h",
376         "src/common/module.cc",
377         "src/common/module.h",
378         "src/common/stabs_reader.cc",
379         "src/common/stabs_reader.h",
380         "src/common/stabs_to_module.cc",
381         "src/common/stabs_to_module.h",
382         "src/tools/linux/dump_syms/dump_syms.cc",
383       ]
385       # There are some warnings in this code.
386       configs -= [ "//build/config/compiler:chromium_code" ]
387       configs += [ "//build/config/compiler:no_chromium_code" ]
389       # dwarf2reader.cc uses dynamic_cast. Because we don't typically
390       # don't support RTTI, we enable it for this single target. Since
391       # dump_syms doesn't share any object files with anything else,
392       # this doesn't end up polluting Chrome itself.
393       configs -= [ "//build/config/compiler:no_rtti" ]
394       configs += [ "//build/config/compiler:rtti" ]
396       # Breakpad rev 583 introduced this flag.
397       # Using this define, stabs_reader.h will include a.out.h to
398       # build on Linux.
399       defines = [ "HAVE_A_OUT_H" ]
401       include_dirs = [ "src" ]
402     }
403   }
405   static_library("client") {
406     # Want all these sources for both Linux and Android.
407     set_sources_assignment_filter([])
408     sources = [
409       "src/client/linux/crash_generation/crash_generation_client.cc",
410       "src/client/linux/crash_generation/crash_generation_client.h",
411       "src/client/linux/dump_writer_common/mapping_info.h",
412       "src/client/linux/dump_writer_common/seccomp_unwinder.cc",
413       "src/client/linux/dump_writer_common/seccomp_unwinder.h",
414       "src/client/linux/dump_writer_common/thread_info.cc",
415       "src/client/linux/dump_writer_common/thread_info.h",
416       "src/client/linux/dump_writer_common/ucontext_reader.cc",
417       "src/client/linux/dump_writer_common/ucontext_reader.h",
418       "src/client/linux/handler/exception_handler.cc",
419       "src/client/linux/handler/exception_handler.h",
420       "src/client/linux/handler/minidump_descriptor.cc",
421       "src/client/linux/handler/minidump_descriptor.h",
422       "src/client/linux/log/log.cc",
423       "src/client/linux/log/log.h",
424       "src/client/linux/minidump_writer/cpu_set.h",
425       "src/client/linux/minidump_writer/directory_reader.h",
426       "src/client/linux/minidump_writer/line_reader.h",
427       "src/client/linux/minidump_writer/linux_core_dumper.cc",
428       "src/client/linux/minidump_writer/linux_core_dumper.h",
429       "src/client/linux/minidump_writer/linux_dumper.cc",
430       "src/client/linux/minidump_writer/linux_dumper.h",
431       "src/client/linux/minidump_writer/linux_ptrace_dumper.cc",
432       "src/client/linux/minidump_writer/linux_ptrace_dumper.h",
433       "src/client/linux/minidump_writer/minidump_writer.cc",
434       "src/client/linux/minidump_writer/minidump_writer.h",
435       "src/client/linux/minidump_writer/proc_cpuinfo_reader.h",
436       "src/client/minidump_file_writer-inl.h",
437       "src/client/minidump_file_writer.cc",
438       "src/client/minidump_file_writer.h",
439       "src/common/convert_UTF.c",
440       "src/common/convert_UTF.h",
441       "src/common/linux/elf_core_dump.cc",
442       "src/common/linux/elf_core_dump.h",
443       "src/common/linux/elfutils.cc",
444       "src/common/linux/elfutils.h",
445       "src/common/linux/file_id.cc",
446       "src/common/linux/file_id.h",
447       "src/common/linux/google_crashdump_uploader.cc",
448       "src/common/linux/google_crashdump_uploader.h",
449       "src/common/linux/guid_creator.cc",
450       "src/common/linux/guid_creator.h",
451       "src/common/linux/libcurl_wrapper.cc",
452       "src/common/linux/libcurl_wrapper.h",
453       "src/common/linux/linux_libc_support.cc",
454       "src/common/linux/linux_libc_support.h",
455       "src/common/linux/memory_mapped_file.cc",
456       "src/common/linux/memory_mapped_file.h",
457       "src/common/linux/safe_readlink.cc",
458       "src/common/linux/safe_readlink.h",
459       "src/common/memory.h",
460       "src/common/simple_string_dictionary.cc",
461       "src/common/simple_string_dictionary.h",
462       "src/common/string_conversion.cc",
463       "src/common/string_conversion.h",
464     ]
466     configs -= [ "//build/config/compiler:chromium_code" ]
467     configs += [ "//build/config/compiler:no_chromium_code" ]
468     public_configs = [ ":client_config" ]
470     if (cpu_arch == "arm" && is_chromeos) {
471       # Avoid running out of registers in
472       # linux_syscall_support.h:sys_clone()'s inline assembly.
473       cflags = [ "-marm" ]
474     }
476     if (is_android) {
477       sources += [ "src/common/android/breakpad_getcontext.S" ]
478     }
480     libs = [ "dl" ]
482     include_dirs = [
483       ".",
484       "src",
485       "src/client",
486       "src/third_party/linux/include",
487     ]
488   }
490   static_library("processor_support") {
491     sources = [
492       "src/common/scoped_ptr.h",
493       "src/processor/basic_code_modules.cc",
494       "src/processor/basic_code_modules.h",
495       "src/processor/dump_context.cc",
496       "src/processor/dump_object.cc",
497       "src/processor/logging.cc",
498       "src/processor/logging.h",
499       "src/processor/minidump.cc",
500       "src/processor/pathname_stripper.cc",
501       "src/processor/pathname_stripper.h",
502     ]
504     include_dirs = [
505       "src",
506       "src/client",
507       "src/third_party/linux/include",
508       ".",
509     ]
511     # There are some warnings in this code.
512     configs -= [ "//build/config/compiler:chromium_code" ]
513     configs += [ "//build/config/compiler:no_chromium_code" ]
514   }
517 if (is_linux) {
518   test("breakpad_unittests") {
519     sources = [
520       "linux/breakpad_googletest_includes.h",
521       "src/client/linux/handler/exception_handler_unittest.cc",
522       "src/client/linux/minidump_writer/cpu_set_unittest.cc",
523       "src/client/linux/minidump_writer/directory_reader_unittest.cc",
524       "src/client/linux/minidump_writer/line_reader_unittest.cc",
525       "src/client/linux/minidump_writer/linux_core_dumper_unittest.cc",
526       "src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc",
527       "src/client/linux/minidump_writer/minidump_writer_unittest.cc",
528       "src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc",
529       "src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc",
530       "src/common/linux/elf_core_dump_unittest.cc",
531       "src/common/linux/file_id_unittest.cc",
532       "src/common/linux/linux_libc_support_unittest.cc",
533       "src/common/linux/synth_elf.cc",
534       "src/common/linux/tests/auto_testfile.h",
535       "src/common/linux/tests/crash_generator.cc",
536       "src/common/linux/tests/crash_generator.h",
537       "src/common/memory_range.h",
538       "src/common/memory_unittest.cc",
539       "src/common/simple_string_dictionary_unittest.cc",
540       "src/common/test_assembler.cc",
541       "src/common/tests/file_utils.cc",
542       "src/common/tests/file_utils.h",
543       "src/tools/linux/md2core/minidump_memory_range.h",
544       "src/tools/linux/md2core/minidump_memory_range_unittest.cc",
545     ]
547     deps = [
548       ":client",
549       ":processor_support",
550       ":linux_dumper_unittest_helper",
551       "//testing/gtest",
552       "//testing/gtest:gtest_main",
553       "//testing/gmock",
554     ]
556     include_dirs = [
557       "linux",  # Use our copy of breakpad_googletest_includes.h
558       "src",
559       ".",
560     ]
562     # There are some warnings in this code.
563     configs -= [ "//build/config/compiler:chromium_code" ]
564     configs += [ "//build/config/compiler:no_chromium_code" ]
566     if (is_clang) {
567       # See http://crbug.com/138571#c18
568       cflags = [ "-Wno-unused-value" ]
569     }
572     if (is_android) {
573       sources += [ "src/common/android/breakpad_getcontext_unittest.cc" ]
574       libs = [ "log" ]
575       include_dirs += [ "src/common/android/include" ]
576     }
577   }
579   executable("linux_dumper_unittest_helper") {
580     testonly = true
581     sources = [
582       "src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc",
583     ]
584     deps = [
585       ":processor_support",
586     ]
588     include_dirs = [
589       "src",
590     ]
592     if (cpu_arch == "mipsel" && is_android) {
593       include_dirs += [ "src/common/android/include" ]
594     }
595   }
598   executable("generate_test_dump") {
599     testonly = true
600     sources = [
601       "linux/generate-test-dump.cc",
602     ]
604     # This file has an unused variable warning.
605     configs -= [ "//build/config/compiler:chromium_code" ]
606     configs += [ "//build/config/compiler:no_chromium_code" ]
608     deps = [ ":client" ]
610     include_dirs = [ "src" ]
612     if (is_android) {
613       libs = [ "log" ]
614       include_dirs += [ "src/common/android/include" ]
615     }
616   }
618   executable("minidump-2-core") {
619     sources = [ "src/tools/linux/md2core/minidump-2-core.cc" ]
621     include_dirs = [ "src" ]
623     deps = [ ":client" ]
624   }
626   executable("core-2-minidump") {
627     sources = [
628       "src/tools/linux/core2md/core2md.cc",
629     ]
631     deps = [
632       ":client",
633     ]
635     include_dirs = [ "src" ]
636   }
639 if (is_ios) {
640   static_library("client") {
641     sources = [
642       "src/client/ios/Breakpad.h",
643       "src/client/ios/Breakpad.mm",
644       "src/client/ios/BreakpadController.h",
645       "src/client/ios/BreakpadController.mm",
646       "src/client/ios/handler/ios_exception_minidump_generator.mm",
647       "src/client/ios/handler/ios_exception_minidump_generator.h",
648       "src/client/mac/crash_generation/ConfigFile.h",
649       "src/client/mac/crash_generation/ConfigFile.mm",
650       "src/client/mac/handler/breakpad_nlist_64.cc",
651       "src/client/mac/handler/breakpad_nlist_64.h",
652       "src/client/mac/handler/dynamic_images.cc",
653       "src/client/mac/handler/dynamic_images.h",
654       "src/client/mac/handler/protected_memory_allocator.cc",
655       "src/client/mac/handler/protected_memory_allocator.h",
656       "src/client/mac/handler/exception_handler.cc",
657       "src/client/mac/handler/exception_handler.h",
658       "src/client/mac/handler/minidump_generator.cc",
659       "src/client/mac/handler/minidump_generator.h",
660       "src/client/mac/sender/uploader.h",
661       "src/client/mac/sender/uploader.mm",
662       "src/client/minidump_file_writer.cc",
663       "src/client/minidump_file_writer.h",
664       "src/client/minidump_file_writer-inl.h",
665       "src/common/convert_UTF.c",
666       "src/common/convert_UTF.h",
667       "src/common/mac/file_id.cc",
668       "src/common/mac/file_id.h",
669       "src/common/mac/HTTPMultipartUpload.m",
670       "src/common/mac/macho_id.cc",
671       "src/common/mac/macho_id.h",
672       "src/common/mac/macho_utilities.cc",
673       "src/common/mac/macho_utilities.h",
674       "src/common/mac/macho_walker.cc",
675       "src/common/mac/macho_walker.h",
676       "src/common/mac/string_utilities.cc",
677       "src/common/mac/string_utilities.h",
678       "src/common/md5.cc",
679       "src/common/md5.h",
680       "src/common/simple_string_dictionary.cc",
681       "src/common/simple_string_dictionary.h",
682       "src/common/string_conversion.cc",
683       "src/common/string_conversion.h",
684       "src/google_breakpad/common/minidump_format.h",
685     ]
687     include_dirs = [
688       "src",
689       "src/client/mac/Framework",
690       "src/common/mac",
691     ]
692   }
694   # TODO(GYP) There is some XCode-only targets like ninja-breakpad.
697 if (is_win) {
698   group("client") {
699     public_configs = [ ":client_config" ]
700   }
702   source_set("breakpad_handler") {
703     configs += [ ":handler_config" ]
704     if (is_win) {
705       public_configs = [ ":handler_config" ]
706     }
708     defines = [ "BREAKPAD_NO_TERMINATE_THREAD" ]
710     sources = [
711       "src/client/windows/crash_generation/client_info.cc",
712       "src/client/windows/crash_generation/client_info.h",
713       "src/client/windows/crash_generation/crash_generation_client.cc",
714       "src/client/windows/crash_generation/crash_generation_client.h",
715       "src/client/windows/crash_generation/crash_generation_server.cc",
716       "src/client/windows/crash_generation/crash_generation_server.h",
717       "src/client/windows/handler/exception_handler.cc",
718       "src/client/windows/handler/exception_handler.h",
719       "src/common/windows/guid_string.cc",
720       "src/common/windows/guid_string.h",
721       "src/google_breakpad/common/minidump_format.h",
722       "src/client/windows/crash_generation/minidump_generator.cc",
723       "src/client/windows/crash_generation/minidump_generator.h",
724       "src/common/windows/string_utils-inl.h",
725     ]
726   }