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