# Copyright 2018 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("common") {
  sources = [
    "sandbox_setup.cc",
    "sandbox_setup.h",
  ]

  deps = [
    "//base:base",
    "//chrome/chrome_cleaner/constants:common_strings",
    "//chrome/chrome_cleaner/interfaces:zip_archiver_interface",
    "//chrome/chrome_cleaner/ipc:mojo_task_runner",
    "//chrome/chrome_cleaner/ipc:sandbox",
    "//components/chrome_cleaner/public/constants:constants",
    "//mojo/public/cpp/system:system",
    "//sandbox/win:sandbox",
  ]
}

source_set("unittest_sources") {
  testonly = true

  sources = [
    "sandbox_setup_unittest.cc",
  ]

  deps = [
    ":common",
    "//base:base",
    "//base/test:test_support",
    "//chrome/chrome_cleaner/interfaces:zip_archiver_interface",
    "//chrome/chrome_cleaner/zip_archiver:test_support",
    "//chrome/chrome_cleaner/zip_archiver/target:common",
    "//mojo/public/cpp/system:system",
    "//sandbox/win:sandbox",
    "//testing/gtest",
  ]
}
