cc_project_template_bazel

A Bazel, ninja, and googletest-based C++ project template
git clone https://git.bracken.jp/cc_project_template_bazel.git
Log | Files | Refs | README | LICENSE

googletest.BUILD (5270B)


      1 # Copyright 2017 Google Inc.
      2 # All Rights Reserved.
      3 #
      4 #
      5 # Redistribution and use in source and binary forms, with or without
      6 # modification, are permitted provided that the following conditions are
      7 # met:
      8 #
      9 #     * Redistributions of source code must retain the above copyright
     10 # notice, this list of conditions and the following disclaimer.
     11 #     * Redistributions in binary form must reproduce the above
     12 # copyright notice, this list of conditions and the following disclaimer
     13 # in the documentation and/or other materials provided with the
     14 # distribution.
     15 #     * Neither the name of Google Inc. nor the names of its
     16 # contributors may be used to endorse or promote products derived from
     17 # this software without specific prior written permission.
     18 #
     19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     20 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     21 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     22 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     23 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     24 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     25 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     26 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     27 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     29 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30 #
     31 # Author: misterg@google.com (Gennadiy Civil)
     32 #
     33 #   Bazel Build for Google C++ Testing Framework(Google Test)
     34 
     35 package(default_visibility = ["//visibility:public"])
     36 
     37 licenses(["notice"])
     38 
     39 config_setting(
     40     name = "windows",
     41     values = {"cpu": "x64_windows"},
     42 )
     43 
     44 config_setting(
     45     name = "windows_msvc",
     46     values = {"cpu": "x64_windows_msvc"},
     47 )
     48 
     49 config_setting(
     50     name = "has_absl",
     51     values = {"define": "absl=1"},
     52 )
     53 
     54 # Google Test including Google Mock
     55 cc_library(
     56     name = "gtest",
     57     srcs = glob(
     58         include = [
     59             "googletest/src/*.cc",
     60             "googletest/src/*.h",
     61             "googletest/include/gtest/**/*.h",
     62             "googlemock/src/*.cc",
     63             "googlemock/include/gmock/**/*.h",
     64         ],
     65         exclude = [
     66             "googletest/src/gtest-all.cc",
     67             "googletest/src/gtest_main.cc",
     68             "googlemock/src/gmock-all.cc",
     69             "googlemock/src/gmock_main.cc",
     70         ],
     71     ),
     72     hdrs = glob([
     73         "googletest/include/gtest/*.h",
     74         "googlemock/include/gmock/*.h",
     75     ]),
     76     copts = select(
     77         {
     78             ":windows": [],
     79             ":windows_msvc": [],
     80             "//conditions:default": ["-pthread"],
     81         },
     82     ),
     83     defines = select(
     84         {
     85             ":has_absl": [
     86                 "GTEST_HAS_ABSL=1",
     87             ],
     88             "//conditions:default": [],
     89         },
     90     ),
     91     includes = [
     92         "googlemock",
     93         "googlemock/include",
     94         "googletest",
     95         "googletest/include",
     96     ],
     97     linkopts = select({
     98         ":windows": [],
     99         ":windows_msvc": [],
    100         "//conditions:default": [
    101             "-pthread",
    102         ],
    103     }),
    104     deps = select(
    105         {
    106             ":has_absl": [
    107                 "@com_google_absl//absl/debugging:failure_signal_handler",
    108                 "@com_google_absl//absl/debugging:stacktrace",
    109                 "@com_google_absl//absl/debugging:symbolize",
    110                 "@com_google_absl//absl/strings",
    111                 "@com_google_absl//absl/types:optional",
    112                 "@com_google_absl//absl/types:variant",
    113             ],
    114             "//conditions:default": [],
    115         },
    116     ),
    117 )
    118 
    119 cc_library(
    120     name = "gtest_main",
    121     srcs = [
    122         "googlemock/src/gmock_main.cc",
    123     ],
    124     deps = [":gtest"],
    125 )
    126 
    127 # The following rules build samples of how to use gTest.
    128 cc_library(
    129     name = "gtest_sample_lib",
    130     srcs = [
    131         "googletest/samples/sample1.cc",
    132         "googletest/samples/sample2.cc",
    133         "googletest/samples/sample4.cc",
    134     ],
    135     hdrs = [
    136         "googletest/samples/prime_tables.h",
    137         "googletest/samples/sample1.h",
    138         "googletest/samples/sample2.h",
    139         "googletest/samples/sample3-inl.h",
    140         "googletest/samples/sample4.h",
    141     ],
    142 )
    143 
    144 cc_test(
    145     name = "gtest_samples",
    146     size = "small",
    147     #All Samples except:
    148     #sample9 ( main )
    149     #sample10 (main and takes a command line option and needs to be separate)
    150     srcs = [
    151         "googletest/samples/sample1_unittest.cc",
    152         "googletest/samples/sample2_unittest.cc",
    153         "googletest/samples/sample3_unittest.cc",
    154         "googletest/samples/sample4_unittest.cc",
    155         "googletest/samples/sample5_unittest.cc",
    156         "googletest/samples/sample6_unittest.cc",
    157         "googletest/samples/sample7_unittest.cc",
    158         "googletest/samples/sample8_unittest.cc",
    159     ],
    160     deps = [
    161         "gtest_sample_lib",
    162         ":gtest_main",
    163     ],
    164 )
    165 
    166 cc_test(
    167     name = "sample9_unittest",
    168     size = "small",
    169     srcs = ["googletest/samples/sample9_unittest.cc"],
    170     deps = [":gtest"],
    171 )
    172 
    173 cc_test(
    174     name = "sample10_unittest",
    175     size = "small",
    176     srcs = ["googletest/samples/sample10_unittest.cc"],
    177     deps = [
    178         ":gtest",
    179     ],
    180 )