# Copyright 2016 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.

import("//mojo/public/tools/bindings/mojom.gni")

mojom("call_stack_mojo_bindings") {
  sources = [
    "call_stack_profile_collector.mojom",
  ]

  deps = [
    "//mojo/public/mojom/base",
  ]
}

mojom("call_stack_mojo_test_bindings") {
  sources = [
    "call_stack_profile_collector_test.mojom",
  ]

  deps = [
    ":call_stack_mojo_bindings",
  ]
}

mojom("single_sample_metrics_mojo_bindings") {
  sources = [
    "single_sample_metrics.mojom",
  ]
}
