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