Abseil Common Libraries (C++) (grcp 依赖)
https://abseil.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
463 lines
9.5 KiB
463 lines
9.5 KiB
# |
|
# Copyright 2019 The Abseil Authors. |
|
# |
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
# you may not use this file except in compliance with the License. |
|
# You may obtain a copy of the License at |
|
# |
|
# https://www.apache.org/licenses/LICENSE-2.0 |
|
# |
|
# Unless required by applicable law or agreed to in writing, software |
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
# See the License for the specific language governing permissions and |
|
# limitations under the License. |
|
# |
|
|
|
load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") |
|
load( |
|
"//absl:copts/configure_copts.bzl", |
|
"ABSL_DEFAULT_COPTS", |
|
"ABSL_DEFAULT_LINKOPTS", |
|
"ABSL_TEST_COPTS", |
|
) |
|
|
|
package(default_visibility = ["//visibility:public"]) |
|
|
|
licenses(["notice"]) # Apache 2.0 |
|
|
|
cc_library( |
|
name = "flag_internal", |
|
srcs = [ |
|
"internal/flag.cc", |
|
], |
|
hdrs = [ |
|
"internal/flag.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
visibility = ["//absl/base:__subpackages__"], |
|
deps = [ |
|
":config", |
|
":handle", |
|
":registry", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/memory", |
|
"//absl/strings", |
|
"//absl/synchronization", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "program_name", |
|
srcs = [ |
|
"internal/program_name.cc", |
|
], |
|
hdrs = [ |
|
"internal/program_name.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
visibility = [ |
|
"//absl/flags:__pkg__", |
|
], |
|
deps = [ |
|
":path_util", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
"//absl/synchronization", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "path_util", |
|
hdrs = [ |
|
"internal/path_util.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
visibility = [ |
|
"//absl/flags:__pkg__", |
|
], |
|
deps = [ |
|
"//absl/base:config", |
|
"//absl/strings", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "config", |
|
srcs = [ |
|
"usage_config.cc", |
|
], |
|
hdrs = [ |
|
"config.h", |
|
"usage_config.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":path_util", |
|
":program_name", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
"//absl/synchronization", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "marshalling", |
|
srcs = [ |
|
"marshalling.cc", |
|
], |
|
hdrs = [ |
|
"marshalling.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/base:log_severity", |
|
"//absl/strings", |
|
"//absl/strings:str_format", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "handle", |
|
hdrs = [ |
|
"internal/commandlineflag.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
visibility = [ |
|
"//absl/flags:__pkg__", |
|
], |
|
deps = [ |
|
":marshalling", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
"//absl/types:optional", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "registry", |
|
srcs = [ |
|
"internal/registry.cc", |
|
"internal/type_erased.cc", |
|
], |
|
hdrs = [ |
|
"internal/registry.h", |
|
"internal/type_erased.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
visibility = [ |
|
"//absl/flags:__pkg__", |
|
], |
|
deps = [ |
|
":config", |
|
":handle", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/base:raw_logging_internal", |
|
"//absl/strings", |
|
"//absl/synchronization", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "flag", |
|
srcs = [ |
|
"flag.cc", |
|
], |
|
hdrs = [ |
|
"declare.h", |
|
"flag.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":config", |
|
":flag_internal", |
|
":handle", |
|
":marshalling", |
|
":registry", |
|
"//absl/base", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "usage_internal", |
|
srcs = [ |
|
"internal/usage.cc", |
|
], |
|
hdrs = [ |
|
"internal/usage.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
visibility = [ |
|
"//absl/flags:__pkg__", |
|
], |
|
deps = [ |
|
":config", |
|
":flag", |
|
":flag_internal", |
|
":handle", |
|
":path_util", |
|
":program_name", |
|
":registry", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "usage", |
|
srcs = [ |
|
"usage.cc", |
|
], |
|
hdrs = [ |
|
"usage.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":usage_internal", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
"//absl/synchronization", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "parse", |
|
srcs = ["parse.cc"], |
|
hdrs = [ |
|
"internal/parse.h", |
|
"parse.h", |
|
], |
|
copts = ABSL_DEFAULT_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":config", |
|
":flag", |
|
":flag_internal", |
|
":handle", |
|
":program_name", |
|
":registry", |
|
":usage", |
|
":usage_internal", |
|
"//absl/base:config", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
"//absl/synchronization", |
|
], |
|
) |
|
|
|
############################################################################ |
|
# Unit tests in alphabetical order. |
|
|
|
cc_test( |
|
name = "commandlineflag_test", |
|
size = "small", |
|
srcs = [ |
|
"internal/commandlineflag_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":config", |
|
":flag", |
|
":handle", |
|
":registry", |
|
"//absl/memory", |
|
"//absl/strings", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "config_test", |
|
size = "small", |
|
srcs = [ |
|
"config_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":config", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "flag_test", |
|
size = "small", |
|
srcs = [ |
|
"flag_test.cc", |
|
"flag_test_defs.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":config", |
|
":flag", |
|
":flag_internal", |
|
":handle", |
|
":registry", |
|
"//absl/base:core_headers", |
|
"//absl/strings", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_binary( |
|
name = "flag_benchmark", |
|
testonly = 1, |
|
srcs = [ |
|
"flag_benchmark.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
tags = ["benchmark"], |
|
visibility = ["//visibility:private"], |
|
deps = [ |
|
":flag", |
|
"//absl/time", |
|
"//absl/types:optional", |
|
"@com_github_google_benchmark//:benchmark_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "marshalling_test", |
|
size = "small", |
|
srcs = [ |
|
"marshalling_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":marshalling", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "path_util_test", |
|
size = "small", |
|
srcs = [ |
|
"internal/path_util_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":path_util", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "parse_test", |
|
size = "small", |
|
srcs = [ |
|
"parse_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":flag", |
|
":parse", |
|
":registry", |
|
"//absl/base:raw_logging_internal", |
|
"//absl/base:scoped_set_env", |
|
"//absl/strings", |
|
"//absl/types:span", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "program_name_test", |
|
size = "small", |
|
srcs = [ |
|
"internal/program_name_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":program_name", |
|
"//absl/strings", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "type_erased_test", |
|
size = "small", |
|
srcs = [ |
|
"internal/type_erased_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":flag", |
|
":handle", |
|
":marshalling", |
|
":registry", |
|
"//absl/memory", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "usage_config_test", |
|
size = "small", |
|
srcs = [ |
|
"usage_config_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":config", |
|
":path_util", |
|
":program_name", |
|
"//absl/strings", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "usage_test", |
|
size = "small", |
|
srcs = [ |
|
"internal/usage_test.cc", |
|
], |
|
copts = ABSL_TEST_COPTS, |
|
linkopts = ABSL_DEFAULT_LINKOPTS, |
|
deps = [ |
|
":config", |
|
":flag", |
|
":parse", |
|
":path_util", |
|
":program_name", |
|
":registry", |
|
":usage", |
|
":usage_internal", |
|
"//absl/memory", |
|
"//absl/strings", |
|
"@com_google_googletest//:gtest", |
|
], |
|
)
|
|
|