# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("snapshot") {
  deps = [
    "../client",
    "../compat",
    "../util",
    "//base",
  ]

  include_dirs = [ ".." ]

  if (is_win) {
    cflags = [ "/wd4201" ]
    libs = [ "powrprof.lib" ]
  }

  sources = [
    "cpu_architecture.h",
    "cpu_context.cc",
    "cpu_context.h",
    "crashpad_info_client_options.cc",
    "crashpad_info_client_options.h",
    "exception_snapshot.h",
    "handle_snapshot.cc",
    "handle_snapshot.h",
    "mac/cpu_context_mac.cc",
    "mac/cpu_context_mac.h",
    "mac/exception_snapshot_mac.cc",
    "mac/exception_snapshot_mac.h",
    "mac/mach_o_image_annotations_reader.cc",
    "mac/mach_o_image_annotations_reader.h",
    "mac/mach_o_image_reader.cc",
    "mac/mach_o_image_reader.h",
    "mac/mach_o_image_segment_reader.cc",
    "mac/mach_o_image_segment_reader.h",
    "mac/mach_o_image_symbol_table_reader.cc",
    "mac/mach_o_image_symbol_table_reader.h",
    "mac/memory_snapshot_mac.cc",
    "mac/memory_snapshot_mac.h",
    "mac/module_snapshot_mac.cc",
    "mac/module_snapshot_mac.h",
    "mac/process_reader.cc",
    "mac/process_reader.h",
    "mac/process_snapshot_mac.cc",
    "mac/process_snapshot_mac.h",
    "mac/process_types.cc",
    "mac/process_types.h",
    "mac/process_types/all.proctype",
    "mac/process_types/crashpad_info.proctype",
    "mac/process_types/crashreporterclient.proctype",
    "mac/process_types/custom.cc",
    "mac/process_types/dyld_images.proctype",
    "mac/process_types/flavors.h",
    "mac/process_types/internal.h",
    "mac/process_types/loader.proctype",
    "mac/process_types/nlist.proctype",
    "mac/process_types/traits.h",
    "mac/system_snapshot_mac.cc",
    "mac/system_snapshot_mac.h",
    "mac/thread_snapshot_mac.cc",
    "mac/thread_snapshot_mac.h",
    "memory_snapshot.h",
    "minidump/minidump_simple_string_dictionary_reader.cc",
    "minidump/minidump_simple_string_dictionary_reader.h",
    "minidump/minidump_string_list_reader.cc",
    "minidump/minidump_string_list_reader.h",
    "minidump/minidump_string_reader.cc",
    "minidump/minidump_string_reader.h",
    "minidump/module_snapshot_minidump.cc",
    "minidump/module_snapshot_minidump.h",
    "minidump/process_snapshot_minidump.cc",
    "minidump/process_snapshot_minidump.h",
    "module_snapshot.h",
    "process_snapshot.h",
    "system_snapshot.h",
    "thread_snapshot.h",
    "win/cpu_context_win.cc",
    "win/cpu_context_win.h",
    "win/exception_snapshot_win.cc",
    "win/exception_snapshot_win.h",
    "win/memory_map_region_snapshot_win.cc",
    "win/memory_map_region_snapshot_win.h",
    "win/memory_snapshot_win.cc",
    "win/memory_snapshot_win.h",
    "win/module_snapshot_win.cc",
    "win/module_snapshot_win.h",
    "win/pe_image_annotations_reader.cc",
    "win/pe_image_annotations_reader.h",
    "win/pe_image_reader.cc",
    "win/pe_image_reader.h",
    "win/process_reader_win.cc",
    "win/process_reader_win.h",
    "win/process_snapshot_win.cc",
    "win/process_snapshot_win.h",
    "win/system_snapshot_win.cc",
    "win/system_snapshot_win.h",
    "win/thread_snapshot_win.cc",
    "win/thread_snapshot_win.h",
  ]
}
