# 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("flags_ui") {
  sources = [
    "feature_entry.cc",
    "feature_entry.h",
    "feature_entry_macros.h",
    "flags_state.cc",
    "flags_state.h",
    "flags_storage.h",
    "flags_ui_constants.cc",
    "flags_ui_constants.h",
    "flags_ui_pref_names.cc",
    "flags_ui_pref_names.h",
    "pref_service_flags_storage.cc",
    "pref_service_flags_storage.h",
  ]

  deps = [
    ":switches",
    "//base",
    "//components/pref_registry",
    "//components/prefs",
    "//components/strings",
    "//components/variations",
    "//ui/base",
  ]
}

# This is a separate target so that the dependencies of
# //chrome/common can be kept minimal.
static_library("switches") {
  sources = [
    "flags_ui_switches.cc",
    "flags_ui_switches.h",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "flags_state_unittest.cc",
  ]

  deps = [
    ":flags_ui",
    ":switches",
    "//base",
    "//base/test:test_support",
    "//components/prefs:test_support",
    "//components/strings",
    "//components/variations",
    "//testing/gtest",
  ]
}
