brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · ff179a7 Raw
116 lines · plain
1# This file is licensed under the Apache License v2.0 with LLVM Exceptions.2# See https://llvm.org/LICENSE.txt for license information.3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception4 5load("@rules_cc//cc:defs.bzl", "cc_library")6 7package(default_visibility = ["//visibility:public"])8 9licenses(["notice"])10 11exports_files(["LICENSE.TXT"])12 13# It may be tempting to add compiler flags here, but that should be avoided.14# The necessary warnings and other compile flags should be provided by the15# toolchain or the `.bazelrc` file. This is just a workaround until we have a16# widely available feature to enable unlimited stack frame instead of using17# this `Make` variable.18llvm_copts = [19    "$(STACK_FRAME_UNLIMITED)",20]21 22# A hacky library to expose some internal headers of gtest to its own23# implementation source files using a stripped include prefix rather than24# file-relative-inclusion.25#26# FIXME: This file should be in `textual_hdrs` instead of `hdrs`, but27# unfortunately that doesn't work with `strip_include_prefix`:28# https://github.com/bazelbuild/bazel/issues/1242429#30# For now, simply disable parsing and header modules.31cc_library(32    name = "gtest_internal_headers",33    testonly = True,34    hdrs = ["googletest/src/gtest-internal-inl.h"],35    features = [36        "-parse_headers",37        "-header_modules",38    ],39    strip_include_prefix = "googletest",40)41 42cc_library(43    name = "gtest",44    testonly = True,45    srcs = glob(46        [47            "googletest/include/**/*.h",48            "googletest/src/*.cc",49        ],50        exclude = [51            "googletest/src/gtest-all.cc",52            "googletest/include/gtest/gtest_pred_impl.h",53        ],54    ) + [55    ],56    hdrs = [57        "googletest/include/gtest/gtest.h",58        "googletest/include/gtest/gtest-spi.h",59        "googletest/include/gtest/internal/gtest-port.h",60    ],61    copts = llvm_copts,62    defines = [63        "GTEST_HAS_RTTI=0",64        "__STDC_LIMIT_MACROS",65        "__STDC_CONSTANT_MACROS",66    ] + select({67        "@platforms//os:windows": ["GTEST_USE_OWN_TR1_TUPLE=0"],68        "//conditions:default": ["GTEST_USE_OWN_TR1_TUPLE=1"],69    }),70    includes = [71        "googletest/include",72        "include",73    ],74    textual_hdrs = [75        "googletest/include/gtest/gtest_pred_impl.h",76    ],77    deps = [78        ":gtest_internal_headers",79        "//llvm:Support",80    ],81)82 83cc_library(84    name = "gtest_main",85    testonly = True,86    srcs = ["UnitTestMain/TestMain.cpp"],87    copts = llvm_copts,88    deps = [89        ":gmock",90        ":gtest",91        "//llvm:Support",92    ],93)94 95cc_library(96    name = "gmock",97    testonly = True,98    srcs = glob(99        [100            "googlemock/include/**/*.h",101            "googlemock/src/*.cc",102        ],103        exclude = ["googlemock/src/gmock-all.cc"],104    ),105    hdrs = [106        "googlemock/include/gmock/gmock.h",107        "googlemock/include/gmock/gmock-matchers.h",108    ],109    copts = llvm_copts,110    includes = [111        "googlemock/include",112        "include",113    ],114    deps = [":gtest"],115)116