# 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" ]
}
