blob: 973150427019c96757b806a2cedea776a8c19d62 [file] [log] [blame]
misterg88150872017-08-08 15:17:56 -04001# Copyright 2017 Google Inc. All Rights Reserved.
2# Author: misterg@google.com (Gennadiy Civil)
3#
4# Description:
5# Bazel BUILD file for googletest, initial revision
6#
mistergf63e2a12017-08-01 14:36:29 -04007package(default_visibility = ["//visibility:public"])
8
9licenses(["notice"])
10
mistergf63e2a12017-08-01 14:36:29 -040011cc_library(
12 name = "gmock",
13 srcs = glob(
14 include = [
15 "googlemock/src/*.cc",
16 "googlemock/include/gmock/**/*.h",
17 ],
18 exclude = [
19 "googlemock/src/gmock-all.cc",
20 ],
21 ),
22 hdrs = glob([
23 "googlemock/include/gmock/*.h",
24 ]),
25 includes = [
26 "googlemock",
27 "googlemock/include",
28 ],
29 linkopts = select({
30 ":win": [],
31 "//conditions:default": ["-pthread"],
32 }),
33 deps = [
34 ":gtest",
35 ],
36)
37
misterg88150872017-08-08 15:17:56 -040038# gtest public API.
39GTEST_HDRS = \
40 glob([
41 "googletest/include/gtest/*.h",
42 ])
43
44config_setting(
45 name = "win",
46 values = {"cpu": "x64_windows_msvc"},
47)
48
49# Google Test
mistergf63e2a12017-08-01 14:36:29 -040050cc_library(
51 name = "gtest",
52 srcs = glob(
53 include = [
54 "googletest/src/*.cc",
55 "googletest/src/*.h",
56 "googletest/include/gtest/**/*.h",
57 ],
58 exclude = [
59 "googletest/src/gtest-all.cc",
60 "googletest/src/gtest_main.cc",
61 ],
62 ),
misterg88150872017-08-08 15:17:56 -040063 hdrs = GTEST_HDRS,
mistergf63e2a12017-08-01 14:36:29 -040064 copts = select(
65 {
66 ":win": [],
67 "//conditions:default": ["-pthread"],
68 },
69 ),
70 includes = [
71 "googletest",
72 "googletest/include",
73 ],
74 linkopts = select({
75 ":win": [],
76 "//conditions:default": [
77 "-pthread",
78 ],
79 }),
80)
81
misterg88150872017-08-08 15:17:56 -040082## Google Test with exceptions enabled.
83cc_library(
84 name = "gtest_ex",
85 srcs = glob(
86 include = [
87 "googletest/src/*.cc",
88 "googletest/src/*.h",
89 "googletest/include/gtest/**/*.h",
90 ],
91 exclude = [
92 "googletest/src/gtest-all.cc",
93 "googletest/src/gtest_main.cc",
94 ],
95 ),
96 hdrs = GTEST_HDRS,
97 copts = ["-fexceptions"] + select(
98 {
99 ":win": [],
100 "//conditions:default": ["-pthread"],
101 },
102 ),
103 includes = [
104 "googletest",
105 "googletest/include",
106 ],
107 linkopts = select({
108 ":win": [],
109 "//conditions:default": [
110 "-pthread",
111 ],
112 }),
113)
114
mistergf63e2a12017-08-01 14:36:29 -0400115cc_library(
116 name = "gtest_main",
117 srcs = glob(
118 include = [
119 "googletest/src/gtest_main.cc",
120 ],
121 ),
122 hdrs = glob([
123 "googletest/include/gtest/*.h",
124 "googletest/include/gtest/**/*.h",
125 ]),
126 includes = [
127 "googletest",
128 "googletest/include",
129 ],
misterg88150872017-08-08 15:17:56 -0400130 deps = ["//:gtest"],
mistergf63e2a12017-08-01 14:36:29 -0400131)
132
misterg6615f7d2017-08-02 14:36:39 -0400133# The following rules build samples of how to use gTest.
mistergf63e2a12017-08-01 14:36:29 -0400134cc_library(
mistergb3edada2017-08-01 14:50:59 -0400135 name = "gtest_sample_lib",
mistergf63e2a12017-08-01 14:36:29 -0400136 srcs = [
137 "googletest/samples/sample1.cc",
138 "googletest/samples/sample2.cc",
139 "googletest/samples/sample4.cc",
140 ],
141 hdrs = [
142 "googletest/samples/prime_tables.h",
143 "googletest/samples/sample1.h",
144 "googletest/samples/sample2.h",
145 "googletest/samples/sample3-inl.h",
146 "googletest/samples/sample4.h",
147 ],
mistergf63e2a12017-08-01 14:36:29 -0400148)
149
150cc_test(
mistergb3edada2017-08-01 14:50:59 -0400151 name = "gtest_samples",
mistergf63e2a12017-08-01 14:36:29 -0400152 size = "small",
misterg88150872017-08-08 15:17:56 -0400153 #All Samples except:
154 #sample9 ( main )
155 #sample10 (main and takes a command line option and needs to be separate)
156 srcs = [
157 "googletest/samples/sample1_unittest.cc",
158 "googletest/samples/sample2_unittest.cc",
159 "googletest/samples/sample3_unittest.cc",
160 "googletest/samples/sample4_unittest.cc",
161 "googletest/samples/sample5_unittest.cc",
162 "googletest/samples/sample6_unittest.cc",
163 "googletest/samples/sample7_unittest.cc",
164 "googletest/samples/sample8_unittest.cc",
165 ],
mistergf63e2a12017-08-01 14:36:29 -0400166 deps = [
mistergaa31cb62017-08-02 15:40:14 -0400167 "gtest_sample_lib",
mistergb3edada2017-08-01 14:50:59 -0400168 ":gtest_main",
mistergf63e2a12017-08-01 14:36:29 -0400169 ],
170)
171
172cc_test(
mistergaa31cb62017-08-02 15:40:14 -0400173 name = "sample9_unittest",
mistergf63e2a12017-08-01 14:36:29 -0400174 size = "small",
mistergaa31cb62017-08-02 15:40:14 -0400175 srcs = ["googletest/samples/sample9_unittest.cc"],
misterg88150872017-08-08 15:17:56 -0400176 deps = [":gtest"],
mistergaa31cb62017-08-02 15:40:14 -0400177)
178
179cc_test(
180 name = "sample10_unittest",
181 size = "small",
182 srcs = ["googletest/samples/sample10_unittest.cc"],
mistergf63e2a12017-08-01 14:36:29 -0400183 deps = [
misterg88150872017-08-08 15:17:56 -0400184 ":gtest",
mistergf63e2a12017-08-01 14:36:29 -0400185 ],
186)