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

static_library("cygprofile") {
  sources = [
    "cygprofile.cc",
    "cygprofile.h",
  ]

  configs -= [ "//build/config/android:default_cygprofile_instrumentation" ]
  configs += [ "//build/config/android:no_cygprofile_instrumentation" ]

  deps = [
    # This adds uninstrumented symbols to the static library from base.
    # These symbols are likely *not* to be used because there are many other
    # duplicates in other objects/libraries.
    "//base",
  ]
}

executable("cygprofile_unittests") {
  testonly = true

  sources = [
    "cygprofile_unittest.cc",
  ]

  configs -= [ "//build/config/android:default_cygprofile_instrumentation" ]
  configs += [ "//build/config/android:no_cygprofile_instrumentation" ]

  deps = [
    ":cygprofile",
    "//base",
    "//testing/gtest",
  ]
}

executable("cygprofile_perftests") {
  testonly = true

  sources = [
    "cygprofile_perftest.cc",
  ]

  configs -= [ "//build/config/android:default_cygprofile_instrumentation" ]
  configs += [ "//build/config/android:no_cygprofile_instrumentation" ]

  deps = [
    ":cygprofile",
    "//base",
    "//testing/gtest",
    "//testing/perf",
  ]
}
