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

# GYP version: components/memory_pressure.gypi:memory_pressure
source_set("memory_pressure") {
  sources = [
    "direct_memory_pressure_calculator.h",
    "direct_memory_pressure_calculator_linux.cc",
    "direct_memory_pressure_calculator_linux.h",
    "direct_memory_pressure_calculator_win.cc",
    "direct_memory_pressure_calculator_win.h",
    "filtered_memory_pressure_calculator.cc",
    "filtered_memory_pressure_calculator.h",
    "memory_pressure_calculator.h",
    "memory_pressure_listener.cc",
    "memory_pressure_listener.h",
    "memory_pressure_monitor.cc",
    "memory_pressure_monitor.h",
    "memory_pressure_stats_collector.cc",
    "memory_pressure_stats_collector.h",
  ]

  deps = [
    "//base",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "direct_memory_pressure_calculator_linux_unittest.cc",
    "direct_memory_pressure_calculator_win_unittest.cc",
    "filtered_memory_pressure_calculator_unittest.cc",
    "memory_pressure_monitor_unittest.cc",
    "memory_pressure_stats_collector_unittest.cc",
    "test_memory_pressure_calculator.cc",
    "test_memory_pressure_calculator.h",
  ]

  deps = [
    ":memory_pressure",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
