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

if (is_fuchsia) {
  import("//build/fuchsia/sdk.gni")
}

config("gtest_private_config") {
  visibility = [ ":*" ]
  include_dirs = [ "googletest" ]
}

config("gtest_config") {
  include_dirs = [ "googletest/include" ]
}

static_library("gtest") {
  testonly = true
  public = [
    "googletest/include/gtest/gtest-spi.h",
    "googletest/include/gtest/gtest.h",
  ]
  sources = [
    "googletest/include/gtest/gtest-death-test.h",
    "googletest/include/gtest/gtest-message.h",
    "googletest/include/gtest/gtest-param-test.h",
    "googletest/include/gtest/gtest-printers.h",
    "googletest/include/gtest/gtest-test-part.h",
    "googletest/include/gtest/gtest-typed-test.h",
    "googletest/include/gtest/gtest_pred_impl.h",
    "googletest/include/gtest/gtest_prod.h",
    "googletest/include/gtest/internal/custom/gtest-port.h",
    "googletest/include/gtest/internal/custom/gtest-printers.h",
    "googletest/include/gtest/internal/custom/gtest.h",
    "googletest/include/gtest/internal/gtest-death-test-internal.h",
    "googletest/include/gtest/internal/gtest-filepath.h",
    "googletest/include/gtest/internal/gtest-internal.h",
    "googletest/include/gtest/internal/gtest-linked_ptr.h",
    "googletest/include/gtest/internal/gtest-param-util-generated.h",
    "googletest/include/gtest/internal/gtest-param-util.h",
    "googletest/include/gtest/internal/gtest-port-arch.h",
    "googletest/include/gtest/internal/gtest-port.h",
    "googletest/include/gtest/internal/gtest-string.h",
    "googletest/include/gtest/internal/gtest-tuple.h",
    "googletest/include/gtest/internal/gtest-type-util.h",
    "googletest/src/gtest-all.cc",
    "googletest/src/gtest-death-test.cc",
    "googletest/src/gtest-filepath.cc",
    "googletest/src/gtest-internal-inl.h",
    "googletest/src/gtest-matchers.cc",
    "googletest/src/gtest-port.cc",
    "googletest/src/gtest-printers.cc",
    "googletest/src/gtest-test-part.cc",
    "googletest/src/gtest-typed-test.cc",
    "googletest/src/gtest.cc",
  ]
  sources -= [ "googletest/src/gtest-all.cc" ]
  public_configs = [ ":gtest_config" ]
  configs += [ ":gtest_private_config" ]

  if (is_fuchsia) {
    if (using_fuchsia_sdk) {
      deps = [
        "$fuchsia_sdk_root/pkg:fdio",
        "$fuchsia_sdk_root/pkg:zx",
      ]
    } else {
      deps = [
        "//zircon/public/lib/fdio",
        "//zircon/public/lib/zx",
      ]
    }
  }
}

# Library that defines the FRIEND_TEST macro.
source_set("gtest_prod") {
  testonly = false
  public = [ "googletest/include/gtest/gtest_prod.h" ]
  public_configs = [ ":gtest_config" ]
}

static_library("gtest_main") {
  testonly = true
  sources = [ "googletest/src/gtest_main.cc" ]
  public_deps = [ ":gtest" ]
}

executable("gtest_all_test") {
  testonly = true
  sources = [
    "googletest/test/gtest-death-test_test.cc",
    "googletest/test/gtest-filepath_test.cc",
    "googletest/test/gtest-linked_ptr_test.cc",
    "googletest/test/gtest-message_test.cc",
    "googletest/test/gtest-options_test.cc",
    "googletest/test/gtest-port_test.cc",
    "googletest/test/gtest-printers_test.cc",
    "googletest/test/gtest-test-part_test.cc",
    "googletest/test/gtest-typed-test2_test.cc",
    "googletest/test/gtest-typed-test_test.cc",
    "googletest/test/gtest-typed-test_test.h",
    "googletest/test/gtest_main_unittest.cc",
    "googletest/test/gtest_pred_impl_unittest.cc",
    "googletest/test/gtest_prod_test.cc",
    "googletest/test/gtest_unittest.cc",
    "googletest/test/production.cc",
    "googletest/test/production.h",
  ]
  configs += [ ":gtest_private_config" ]
  deps = [
    ":gtest",
    ":gtest_main",
  ]
}

executable("gtest_environment_test") {
  testonly = true
  sources = [ "googletest/test/gtest_environment_test.cc" ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_listener_test") {
  testonly = true
  sources = [ "googletest/test/gtest-listener_test.cc" ]
  deps = [ ":gtest" ]
}

executable("gtest_no_test") {
  testonly = true
  sources = [ "googletest/test/gtest_no_test_unittest.cc" ]
  deps = [ ":gtest" ]
}

executable("gtest_param_test") {
  testonly = true
  sources = [
    "googletest/test/gtest-param-test2_test.cc",
    "googletest/test/gtest-param-test_test.cc",
    "googletest/test/gtest-param-test_test.h",
  ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_premature_exit_test") {
  testonly = true
  sources = [ "googletest/test/gtest_premature_exit_test.cc" ]
  deps = [ ":gtest" ]
}

executable("gtest_repeat_test") {
  testonly = true
  sources = [ "googletest/test/gtest_repeat_test.cc" ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_sole_header_test") {
  testonly = true
  sources = [ "googletest/test/gtest_sole_header_test.cc" ]
  deps = [
    ":gtest",
    ":gtest_main",
  ]
}

executable("gtest_stress_test") {
  testonly = true
  sources = [ "googletest/test/gtest_stress_test.cc" ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_unittest_api_test") {
  testonly = true
  sources = [ "googletest/test/gtest-unittest-api_test.cc" ]
  deps = [ ":gtest" ]
}

group("gtest_all_tests") {
  testonly = true
  deps = [
    ":gtest_all_test",
    ":gtest_environment_test",
    ":gtest_listener_test",
    ":gtest_no_test",
    ":gtest_param_test",
    ":gtest_premature_exit_test",
    ":gtest_repeat_test",
    ":gtest_sole_header_test",
    ":gtest_stress_test",
    ":gtest_unittest_api_test",
  ]
}

config("gmock_private_config") {
  visibility = [ ":*" ]
  include_dirs = [ "googlemock" ]
}

config("gmock_config") {
  include_dirs = [ "googlemock/include" ]

  cflags_cc = [
    # The MOCK_METHODn() macros do not specify "override", which triggers this
    # warning in users: "error: 'Method' overrides a member function but is not
    # marked 'override' [-Werror,-Winconsistent-missing-override]". Suppress
    # these warnings until https://github.com/google/googletest/issues/533 is
    # fixed.
    "-Wno-inconsistent-missing-override",
  ]
}

static_library("gmock") {
  testonly = true
  public = [ "googlemock/include/gmock/gmock.h" ]
  sources = [
    "googlemock/include/gmock/gmock-actions.h",
    "googlemock/include/gmock/gmock-cardinalities.h",
    "googlemock/include/gmock/gmock-generated-actions.h",
    "googlemock/include/gmock/gmock-generated-function-mockers.h",
    "googlemock/include/gmock/gmock-generated-matchers.h",
    "googlemock/include/gmock/gmock-generated-nice-strict.h",
    "googlemock/include/gmock/gmock-matchers.h",
    "googlemock/include/gmock/gmock-more-actions.h",
    "googlemock/include/gmock/gmock-more-matchers.h",
    "googlemock/include/gmock/gmock-spec-builders.h",
    "googlemock/include/gmock/internal/custom/gmock-generated-actions.h",
    "googlemock/include/gmock/internal/custom/gmock-matchers.h",
    "googlemock/include/gmock/internal/custom/gmock-port.h",
    "googlemock/include/gmock/internal/gmock-generated-internal-utils.h",
    "googlemock/include/gmock/internal/gmock-internal-utils.h",
    "googlemock/include/gmock/internal/gmock-port.h",
    "googlemock/src/gmock-all.cc",
    "googlemock/src/gmock-cardinalities.cc",
    "googlemock/src/gmock-internal-utils.cc",
    "googlemock/src/gmock-matchers.cc",
    "googlemock/src/gmock-spec-builders.cc",
    "googlemock/src/gmock.cc",
  ]
  sources -= [ "googlemock/src/gmock-all.cc" ]
  public_configs = [ ":gmock_config" ]
  configs += [ ":gmock_private_config" ]
  deps = [ ":gtest" ]
}

static_library("gmock_main") {
  testonly = true
  sources = [ "googlemock/src/gmock_main.cc" ]
  public_deps = [
    ":gmock",
    ":gtest",
  ]
}

executable("gmock_all_test") {
  testonly = true
  sources = [
    "googlemock/test/gmock-actions_test.cc",
    "googlemock/test/gmock-cardinalities_test.cc",
    "googlemock/test/gmock-generated-actions_test.cc",
    "googlemock/test/gmock-generated-function-mockers_test.cc",
    "googlemock/test/gmock-generated-internal-utils_test.cc",
    "googlemock/test/gmock-generated-matchers_test.cc",
    "googlemock/test/gmock-internal-utils_test.cc",
    "googlemock/test/gmock-matchers_test.cc",
    "googlemock/test/gmock-more-actions_test.cc",
    "googlemock/test/gmock-nice-strict_test.cc",
    "googlemock/test/gmock-port_test.cc",
    "googlemock/test/gmock-spec-builders_test.cc",
    "googlemock/test/gmock_test.cc",
  ]
  configs += [
    ":gmock_private_config",
    ":gtest_private_config",
  ]
  deps = [
    ":gmock",
    ":gmock_main",
    ":gtest",
  ]
}

executable("gmock_link_test") {
  testonly = true
  sources = [
    "googlemock/test/gmock_link2_test.cc",
    "googlemock/test/gmock_link_test.cc",
    "googlemock/test/gmock_link_test.h",
  ]
  configs += [ ":gmock_private_config" ]
  deps = [
    ":gmock",
    ":gmock_main",
    ":gtest",
  ]
}

executable("gmock_stress_test") {
  testonly = true
  sources = [ "googlemock/test/gmock_stress_test.cc" ]
  configs += [ ":gmock_private_config" ]
  deps = [
    ":gmock",
    ":gtest",
  ]
}

group("gmock_all_tests") {
  testonly = true
  deps = [
    ":gmock_all_test",
    ":gmock_link_test",
    ":gmock_stress_test",
  ]
}
