114 lines
3 KiB
Text
114 lines
3 KiB
Text
|
# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
|
||
|
# See https://llvm.org/LICENSE.txt for license information.
|
||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||
|
|
||
|
package(default_visibility = ["//visibility:public"])
|
||
|
|
||
|
licenses(["notice"])
|
||
|
|
||
|
exports_files(["LICENSE.TXT"])
|
||
|
|
||
|
# It may be tempting to add compiler flags here, but that should be avoided.
|
||
|
# The necessary warnings and other compile flags should be provided by the
|
||
|
# toolchain or the `.bazelrc` file. This is just a workaround until we have a
|
||
|
# widely available feature to enable unlimited stack frame instead of using
|
||
|
# this `Make` variable.
|
||
|
llvm_copts = [
|
||
|
"$(STACK_FRAME_UNLIMITED)",
|
||
|
]
|
||
|
|
||
|
# A hacky library to expose some internal headers of gtest to its own
|
||
|
# implementation source files using a stripped include prefix rather than
|
||
|
# file-relative-inclusion.
|
||
|
#
|
||
|
# FIXME: This file should be in `textual_hdrs` instead of `hdrs`, but
|
||
|
# unfortunately that doesn't work with `strip_include_prefix`:
|
||
|
# https://github.com/bazelbuild/bazel/issues/12424
|
||
|
#
|
||
|
# For now, simply disable parsing and header modules.
|
||
|
cc_library(
|
||
|
name = "gtest_internal_headers",
|
||
|
testonly = True,
|
||
|
hdrs = ["googletest/src/gtest-internal-inl.h"],
|
||
|
features = [
|
||
|
"-parse_headers",
|
||
|
"-header_modules",
|
||
|
],
|
||
|
strip_include_prefix = "googletest",
|
||
|
)
|
||
|
|
||
|
cc_library(
|
||
|
name = "gtest",
|
||
|
testonly = True,
|
||
|
srcs = glob(
|
||
|
[
|
||
|
"googletest/include/**/*.h",
|
||
|
"googletest/src/*.cc",
|
||
|
],
|
||
|
exclude = [
|
||
|
"googletest/src/gtest-all.cc",
|
||
|
"googletest/include/gtest/gtest_pred_impl.h",
|
||
|
],
|
||
|
) + [
|
||
|
],
|
||
|
hdrs = [
|
||
|
"googletest/include/gtest/internal/gtest-port.h",
|
||
|
"googletest/include/gtest/gtest.h",
|
||
|
"googletest/include/gtest/gtest-spi.h",
|
||
|
],
|
||
|
copts = llvm_copts,
|
||
|
defines = [
|
||
|
"GTEST_HAS_RTTI=0",
|
||
|
"__STDC_LIMIT_MACROS",
|
||
|
"__STDC_CONSTANT_MACROS",
|
||
|
] + select({
|
||
|
"@platforms//os:windows": ["GTEST_USE_OWN_TR1_TUPLE=0"],
|
||
|
"//conditions:default": ["GTEST_USE_OWN_TR1_TUPLE=1"],
|
||
|
}),
|
||
|
includes = [
|
||
|
"googletest/include",
|
||
|
"include",
|
||
|
],
|
||
|
textual_hdrs = [
|
||
|
"googletest/include/gtest/gtest_pred_impl.h",
|
||
|
],
|
||
|
deps = [
|
||
|
":gtest_internal_headers",
|
||
|
"//llvm:Support",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
cc_library(
|
||
|
name = "gtest_main",
|
||
|
testonly = True,
|
||
|
srcs = ["UnitTestMain/TestMain.cpp"],
|
||
|
copts = llvm_copts,
|
||
|
deps = [
|
||
|
":gmock",
|
||
|
":gtest",
|
||
|
"//llvm:Support",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
cc_library(
|
||
|
name = "gmock",
|
||
|
testonly = True,
|
||
|
srcs = glob(
|
||
|
[
|
||
|
"googlemock/include/**/*.h",
|
||
|
"googlemock/src/*.cc",
|
||
|
],
|
||
|
exclude = ["googlemock/src/gmock-all.cc"],
|
||
|
),
|
||
|
hdrs = [
|
||
|
"googlemock/include/gmock/gmock.h",
|
||
|
"googlemock/include/gmock/gmock-matchers.h",
|
||
|
],
|
||
|
copts = llvm_copts,
|
||
|
includes = [
|
||
|
"googlemock/include",
|
||
|
"include",
|
||
|
],
|
||
|
deps = [":gtest"],
|
||
|
)
|