googletest/BUILD.bazel
2017-08-02 14:36:39 -04:00

285 lines
6.5 KiB
Python

package(default_visibility = ["//visibility:public"])
licenses(["notice"])
config_setting(
name = "win",
values = {"cpu": "x64_windows_msvc"},
)
cc_library(
name = "gmock",
srcs = glob(
include = [
"googlemock/src/*.cc",
"googlemock/include/gmock/**/*.h",
],
exclude = [
"googlemock/src/gmock-all.cc",
],
),
hdrs = glob([
"googlemock/include/gmock/*.h",
]),
includes = [
"googlemock",
"googlemock/include",
],
linkopts = select({
":win": [],
"//conditions:default": ["-pthread"],
}),
deps = [
":gtest",
],
)
cc_library(
name = "gtest",
srcs = glob(
include = [
"googletest/src/*.cc",
"googletest/src/*.h",
"googletest/include/gtest/**/*.h",
],
exclude = [
"googletest/src/gtest-all.cc",
"googletest/src/gtest_main.cc",
],
),
hdrs = glob([
"googletest/include/gtest/*.h",
]),
copts = select(
{
":win": [],
"//conditions:default": ["-pthread"],
},
),
includes = [
"googletest",
"googletest/include",
],
linkopts = select({
":win": [],
"//conditions:default": [
"-pthread",
],
}),
)
cc_library(
name = "gtest_main",
srcs = glob(
include = [
"googletest/src/gtest_main.cc",
],
),
hdrs = glob([
"googletest/include/gtest/*.h",
"googletest/include/gtest/**/*.h",
]),
includes = [
"googletest",
"googletest/include",
],
deps = [":gmock"],
)
""" gtest own tests """
#on windows exclude gtest-tuple.h and gtest-tuple_test.cc
filegroup(
name = "win_only_test_files",
srcs = glob(
include = [
"googletest/test/gtest-*.cc",
"googletest/test/*.h",
"googletest/include/gtest/**/*.h",
],
exclude = [
"googletest/src/gtest-unittest-api_test.cc",
"googletest/include/gtest/internal/gtest-tuple.h",
"googletest/test/gtest-tuple_test.cc",
"googletest/src/gtest-all.cc",
"googletest/test/gtest_all_test.cc",
"googletest/test/gtest-death-test_ex_test.cc",
"googletest/test/gtest-listener_test.cc",
"googletest/test/gtest-unittest-api_test.cc",
"googletest/test/gtest-param-test_test.cc",
],
),
)
filegroup(
name = "default_test_files",
srcs = glob(
include = [
"googletest/test/gtest-*.cc",
"googletest/test/*.h",
"googletest/include/gtest/**/*.h",
],
exclude = [
"googletest/src/gtest-unittest-api_test.cc",
"googletest/src/gtest-all.cc",
"googletest/test/gtest_all_test.cc",
"googletest/test/gtest-death-test_ex_test.cc",
"googletest/test/gtest-listener_test.cc",
"googletest/test/gtest-unittest-api_test.cc",
"googletest/test/gtest-param-test_test.cc",
],
),
)
cc_test(
name = "gtest_all_test",
size = "small",
srcs = select({
":win": [":win_only_test_files"],
"//conditions:default": [":default_test_files"],
}),
copts = select({
":win": ["-DGTEST_USE_OWN_TR1_TUPLE=0"],
"//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"],
}),
includes = [
"googletest",
"googletest/include",
"googletest/include/internal",
"googletest/test",
],
linkopts = select({
":win": [],
"//conditions:default": [
"-pthread",
],
}),
deps = [":gtest_main"],
)
#These googletest tests have their own main()
cc_test(
name = "gtest-death-test",
size = "small",
srcs = [
"googletest/test/gtest-death-test_ex_test.cc",
],
copts = [
"-DGTEST_ENABLE_CATCH_EXCEPTIONS_=1",
],
deps = [
":gtest_main",
],
)
cc_test(
name = "gtest-listener_test",
size = "small",
srcs = [
"googletest/test/gtest-listener_test.cc",
],
deps = [
":gtest_main",
],
)
cc_test(
name = "gtest-unittest-api_test",
size = "small",
srcs = [
"googletest/test/gtest-unittest-api_test.cc",
],
deps = [
":gtest_main",
],
)
cc_test(
name = "gtest-param-test_test",
size = "small",
srcs = [
"googletest/test/gtest-param-test2_test.cc",
"googletest/test/gtest-param-test_test.cc",
"googletest/test/gtest-param-test_test.h",
],
deps = [
":gtest_main",
],
)
# The following rules build samples of how to use gTest.
cc_library(
name = "gtest_sample_lib",
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(
name = "gtest_samples",
size = "small",
srcs = glob(
# All Samples here except
# Sample9 is designed to fail on purpose
# Sample10 can be run with --check_for_leaks command line flag, should be separate
include = [
"googletest/samples/sample1_unitest.cc",
"googletest/samples/sample2_unitest.cc",
"googletest/samples/sample3_unitest.cc",
"googletest/samples/sample4_unitest.cc",
"googletest/samples/sample5_unitest.cc",
"googletest/samples/sample6_unitest.cc",
"googletest/samples/sample7_unitest.cc",
"googletest/samples/sample8_unitest.cc",
],
),
includes = [
"googletest/samples",
],
deps = [
":gtest_main",
":gtest_sample_lib",
],
)
cc_test(
name = "gtest_sample9",
size = "small",
srcs = glob(
include = [
"googletest/samples/sample9_unittest.cc",
],
),
includes = [
"googletest/samples",
],
deps = [
":gtest_main",
],
)
cc_test(
name = "gtest_sample10",
size = "small",
srcs = glob(
include = [
"googletest/samples/sample10_unittest.cc",
],
),
includes = [
"googletest/samples",
],
deps = [
":gtest_main",
],
)