• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright 2019 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17load(
18    "//absl:copts/configure_copts.bzl",
19    "ABSL_DEFAULT_COPTS",
20    "ABSL_DEFAULT_LINKOPTS",
21    "ABSL_TEST_COPTS",
22)
23
24package(
25    default_visibility = ["//visibility:public"],
26    features = [
27        "header_modules",
28        "layering_check",
29        "parse_headers",
30    ],
31)
32
33licenses(["notice"])
34
35cc_library(
36    name = "any_invocable",
37    srcs = ["internal/any_invocable.h"],
38    hdrs = ["any_invocable.h"],
39    copts = ABSL_DEFAULT_COPTS,
40    linkopts = ABSL_DEFAULT_LINKOPTS,
41    deps = [
42        "//absl/base:config",
43        "//absl/base:core_headers",
44        "//absl/meta:type_traits",
45        "//absl/utility",
46    ],
47)
48
49cc_test(
50    name = "any_invocable_test",
51    srcs = [
52        "any_invocable_test.cc",
53        "internal/any_invocable.h",
54    ],
55    copts = ABSL_TEST_COPTS,
56    linkopts = ABSL_DEFAULT_LINKOPTS,
57    deps = [
58        ":any_invocable",
59        "//absl/base:config",
60        "//absl/base:core_headers",
61        "//absl/meta:type_traits",
62        "//absl/utility",
63        "@googletest//:gtest",
64        "@googletest//:gtest_main",
65    ],
66)
67
68cc_library(
69    name = "bind_front",
70    srcs = ["internal/front_binder.h"],
71    hdrs = ["bind_front.h"],
72    copts = ABSL_DEFAULT_COPTS,
73    linkopts = ABSL_DEFAULT_LINKOPTS,
74    deps = [
75        "//absl/container:compressed_tuple",
76        "//absl/meta:type_traits",
77        "//absl/utility",
78    ],
79)
80
81cc_test(
82    name = "bind_front_test",
83    srcs = ["bind_front_test.cc"],
84    copts = ABSL_TEST_COPTS,
85    linkopts = ABSL_DEFAULT_LINKOPTS,
86    deps = [
87        ":bind_front",
88        "//absl/memory",
89        "@googletest//:gtest",
90        "@googletest//:gtest_main",
91    ],
92)
93
94cc_library(
95    name = "function_ref",
96    srcs = ["internal/function_ref.h"],
97    hdrs = ["function_ref.h"],
98    copts = ABSL_DEFAULT_COPTS,
99    linkopts = ABSL_DEFAULT_LINKOPTS,
100    deps = [
101        ":any_invocable",
102        "//absl/base:core_headers",
103        "//absl/meta:type_traits",
104    ],
105)
106
107cc_test(
108    name = "function_ref_test",
109    size = "small",
110    srcs = ["function_ref_test.cc"],
111    copts = ABSL_TEST_COPTS,
112    deps = [
113        ":any_invocable",
114        ":function_ref",
115        "//absl/container:test_instance_tracker",
116        "//absl/memory",
117        "@googletest//:gtest",
118        "@googletest//:gtest_main",
119    ],
120)
121
122cc_library(
123    name = "overload",
124    hdrs = ["overload.h"],
125    copts = ABSL_DEFAULT_COPTS,
126    linkopts = ABSL_DEFAULT_LINKOPTS,
127    deps = [
128        "//absl/base:config",
129        "//absl/meta:type_traits",
130    ],
131)
132
133cc_test(
134    name = "overload_test",
135    size = "small",
136    srcs = ["overload_test.cc"],
137    copts = ABSL_TEST_COPTS,
138    deps = [
139        ":overload",
140        "//absl/base:config",
141        "//absl/strings",
142        "//absl/strings:string_view",
143        "//absl/types:variant",
144        "@googletest//:gtest",
145        "@googletest//:gtest_main",
146    ],
147)
148
149cc_test(
150    name = "function_type_benchmark",
151    srcs = [
152        "function_type_benchmark.cc",
153    ],
154    copts = ABSL_TEST_COPTS,
155    tags = ["benchmark"],
156    visibility = ["//visibility:private"],
157    deps = [
158        ":any_invocable",
159        ":function_ref",
160        "//absl/base:core_headers",
161        "@google_benchmark//:benchmark_main",
162        "@googletest//:gtest",
163    ],
164)
165