# 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("tool_support") {
  deps = [
    "//base",
  ]

  include_dirs = [ ".." ]

  if (is_win) {
    cflags = [ "/wd4201" ]
  }

  sources = [
    "tool_support.cc",
    "tool_support.h",
  ]
}

executable("crashpad_database_util") {
  sources = [
    "crashpad_database_util.cc",
  ]

  include_dirs = [ ".." ]

  deps = [
    ":tool_support",
    "//base",

    # Default manifest on Windows (a no-op elsewhere).
    "//build/win:default_exe_manifest",
    "//third_party/crashpad/crashpad/client",
    "//third_party/crashpad/crashpad/compat",
    "//third_party/crashpad/crashpad/util",
  ]
}
