#
#  Copyright (C) 2016 Google, Inc.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at:
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#

config("gtest_config") {
  # Gtest headers need to be able to find themselves.
  include_dirs = [ "googletest/include" ]

  defines = [ "GTEST_HAS_RTTI=0" ]
}

config("gtest_direct_config") {
  visibility = [ ":*" ]
  defines = [ "UNIT_TEST" ]
}

static_library("gtest") {
  testonly = true
  sources = [
    "googletest/src/gtest-all.cc",
  ]

  include_dirs = [
    "googletest/",
    "googletest/include",
  ]

  all_dependent_configs = [ ":gtest_config" ]
  public_configs = [ ":gtest_direct_config" ]
}

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

config("gmock_config") {
  # Gmock headers need to be able to find themselves.
  include_dirs = [ "googlemock/include" ]
}

static_library("gmock") {
  testonly = true
  sources = [
    "googlemock/src/gmock-all.cc",
  ]

  # This project includes some stuff form gtest's guts.
  include_dirs = [
    "googlemock",
    "googlemock/include",
  ]

  public_configs = [
    ":gmock_config",
    ":gtest_config",
  ]
}

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

  public_configs = [
    ":gmock_config",
    ":gtest_config",
  ]
}