googletest/BUILD.bazel

181 lines
5.1 KiB
Python
Raw Normal View History

# Copyright 2017 Google Inc.
2017-08-10 18:03:27 +02:00
# All Rights Reserved.
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
2017-08-08 21:17:56 +02:00
#
2017-08-10 18:03:27 +02:00
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2017-08-08 21:17:56 +02:00
#
2017-08-10 18:03:27 +02:00
# Author: misterg@google.com (Gennadiy Civil)
#
# Bazel Build for Google C++ Testing Framework(Google Test)
2017-08-01 20:36:29 +02:00
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
2017-08-08 21:17:56 +02:00
config_setting(
name = "windows",
values = {"cpu": "x64_windows"},
)
config_setting(
name = "windows_msvc",
2017-08-08 21:17:56 +02:00
values = {"cpu": "x64_windows_msvc"},
)
config_setting(
name = "has_absl",
values = {"define": "absl=1"},
)
# Google Test including Google Mock
2017-08-01 20:36:29 +02:00
cc_library(
name = "gtest",
srcs = glob(
include = [
"googletest/src/*.cc",
"googletest/src/*.h",
"googletest/include/gtest/**/*.h",
2017-08-09 17:47:54 +02:00
"googlemock/src/*.cc",
"googlemock/include/gmock/**/*.h",
2017-08-01 20:36:29 +02:00
],
exclude = [
"googletest/src/gtest-all.cc",
"googletest/src/gtest_main.cc",
2017-08-09 17:47:54 +02:00
"googlemock/src/gmock-all.cc",
2017-08-09 20:37:58 +02:00
"googlemock/src/gmock_main.cc",
2017-08-01 20:36:29 +02:00
],
),
hdrs = glob([
2017-08-09 20:37:58 +02:00
"googletest/include/gtest/*.h",
"googlemock/include/gmock/*.h",
]),
2017-08-01 20:36:29 +02:00
copts = select(
{
":windows": [],
":windows_msvc": [],
2017-08-01 20:36:29 +02:00
"//conditions:default": ["-pthread"],
},
),
defines = select(
{
":has_absl": [
"GTEST_HAS_ABSL=1",
],
"//conditions:default": [],
},
),
2017-08-01 20:36:29 +02:00
includes = [
2017-08-09 17:47:54 +02:00
"googlemock",
"googlemock/include",
2017-08-01 20:36:29 +02:00
"googletest",
"googletest/include",
],
linkopts = select({
":windows": [],
":windows_msvc": [],
2017-08-01 20:36:29 +02:00
"//conditions:default": [
"-pthread",
],
}),
deps = select(
{
":has_absl": [
"@com_google_absl//absl/debugging:failure_signal_handler",
"@com_google_absl//absl/debugging:stacktrace",
"@com_google_absl//absl/debugging:symbolize",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:optional",
"@com_google_absl//absl/types:variant",
],
"//conditions:default": [],
},
),
2017-08-01 20:36:29 +02:00
)
2017-08-08 21:17:56 +02:00
cc_library(
name = "gtest_main",
2017-08-09 17:47:54 +02:00
srcs = [
2017-08-10 21:33:09 +02:00
"googlemock/src/gmock_main.cc",
2017-08-01 20:36:29 +02:00
],
deps = [":gtest"],
2017-08-01 20:36:29 +02:00
)
2017-08-02 20:36:39 +02:00
# The following rules build samples of how to use gTest.
2017-08-01 20:36:29 +02:00
cc_library(
2017-08-01 20:50:59 +02:00
name = "gtest_sample_lib",
2017-08-01 20:36:29 +02:00
srcs = [
"googletest/samples/sample1.cc",
"googletest/samples/sample2.cc",
"googletest/samples/sample4.cc",
],
hdrs = [
"googletest/samples/prime_tables.h",
"googletest/samples/sample1.h",
"googletest/samples/sample2.h",
"googletest/samples/sample3-inl.h",
"googletest/samples/sample4.h",
],
)
cc_test(
2017-08-01 20:50:59 +02:00
name = "gtest_samples",
2017-08-01 20:36:29 +02:00
size = "small",
2017-08-08 21:17:56 +02:00
#All Samples except:
#sample9 ( main )
#sample10 (main and takes a command line option and needs to be separate)
srcs = [
"googletest/samples/sample1_unittest.cc",
"googletest/samples/sample2_unittest.cc",
"googletest/samples/sample3_unittest.cc",
"googletest/samples/sample4_unittest.cc",
"googletest/samples/sample5_unittest.cc",
"googletest/samples/sample6_unittest.cc",
"googletest/samples/sample7_unittest.cc",
"googletest/samples/sample8_unittest.cc",
],
2017-08-01 20:36:29 +02:00
deps = [
2017-08-02 21:40:14 +02:00
"gtest_sample_lib",
2017-08-01 20:36:29 +02:00
":gtest_main",
],
)
cc_test(
2017-08-02 21:40:14 +02:00
name = "sample9_unittest",
2017-08-01 20:36:29 +02:00
size = "small",
2017-08-02 21:40:14 +02:00
srcs = ["googletest/samples/sample9_unittest.cc"],
2017-08-08 21:17:56 +02:00
deps = [":gtest"],
2017-08-01 20:36:29 +02:00
)
cc_test(
2017-08-02 21:40:14 +02:00
name = "sample10_unittest",
2017-08-01 20:36:29 +02:00
size = "small",
2017-08-02 21:40:14 +02:00
srcs = ["googletest/samples/sample10_unittest.cc"],
2017-08-01 20:36:29 +02:00
deps = [
2017-08-08 21:17:56 +02:00
":gtest",
2017-08-01 20:36:29 +02:00
],
2017-08-10 17:54:46 +02:00
)