# Copyright 2018 The PDFium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# The file/directory layout of Google Test is not yet considered stable. Until
# it stabilizes, Chromium code MUST use this target instead of reaching directly
# into //third_party/googletest.

import("//build_overrides/build.gni")

source_set("gmock") {
  testonly = true
  sources = [
    "include/gmock/gmock-actions.h",
    "include/gmock/gmock-generated-function-mockers.h",
    "include/gmock/gmock-matchers.h",
    "include/gmock/gmock.h",
  ]
  deps = [
    "//third_party/googletest:gmock",
  ]

  # TODO(crbug.com/806952): Depending on gmock_mutant only if build_with_chromium,
  # because gmock_mutant depends on //base which uses C++14. Since gmock is a
  # third_party library used by other projects it should not include C++14 only code.
  if (build_with_chromium) {
    # Allow Chromium targets depending on gmock to #include testing/gmock_mutant.h
    # without triggering a `gn check` error.
    public_deps = [
      "//testing:gmock_mutant",
    ]
  }

  public_configs = [
    "//third_party/googletest:gmock_config",
    "//third_party/googletest:gtest_config",
  ]
}

# The file/directory layout of Google Test is not yet considered stable. Until
# it stabilizes, Chromium code MUST use this target instead of reaching directly
# into //third_party/googletest.
source_set("gmock_main") {
  testonly = true
  deps = [
    "//third_party/googletest:gmock_main",
  ]
}
