... notably, this includes Abseil's own StatusOr type, which conflicted with our implementation (that was taken from TensorFlow). Change-Id: Ie7d6764b64055caaeb8dc7b6b9d066291e6b538f
		
			
				
	
	
		
			514 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			514 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #
 | |
| # 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_binary", "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"])
 | |
| 
 | |
| 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 = "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 = "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 = "commandlineflag_internal",
 | |
|     srcs = [
 | |
|         "internal/commandlineflag.cc",
 | |
|     ],
 | |
|     hdrs = [
 | |
|         "internal/commandlineflag.h",
 | |
|     ],
 | |
|     copts = ABSL_DEFAULT_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     deps = [
 | |
|         "//absl/base:config",
 | |
|         "//absl/base:fast_type_id",
 | |
|     ],
 | |
| )
 | |
| 
 | |
| cc_library(
 | |
|     name = "commandlineflag",
 | |
|     srcs = [
 | |
|         "commandlineflag.cc",
 | |
|     ],
 | |
|     hdrs = [
 | |
|         "commandlineflag.h",
 | |
|     ],
 | |
|     copts = ABSL_DEFAULT_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     deps = [
 | |
|         ":commandlineflag_internal",
 | |
|         "//absl/base:config",
 | |
|         "//absl/base:fast_type_id",
 | |
|         "//absl/strings",
 | |
|         "//absl/types:optional",
 | |
|     ],
 | |
| )
 | |
| 
 | |
| cc_library(
 | |
|     name = "private_handle_accessor",
 | |
|     srcs = [
 | |
|         "internal/private_handle_accessor.cc",
 | |
|     ],
 | |
|     hdrs = [
 | |
|         "internal/private_handle_accessor.h",
 | |
|     ],
 | |
|     copts = ABSL_DEFAULT_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     visibility = [
 | |
|         "//absl/flags:__pkg__",
 | |
|     ],
 | |
|     deps = [
 | |
|         ":commandlineflag",
 | |
|         ":commandlineflag_internal",
 | |
|         "//absl/base:config",
 | |
|         "//absl/strings",
 | |
|     ],
 | |
| )
 | |
| 
 | |
| cc_library(
 | |
|     name = "reflection",
 | |
|     srcs = [
 | |
|         "reflection.cc",
 | |
|     ],
 | |
|     hdrs = [
 | |
|         "internal/registry.h",
 | |
|         "reflection.h",
 | |
|     ],
 | |
|     copts = ABSL_DEFAULT_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     deps = [
 | |
|         ":commandlineflag",
 | |
|         ":commandlineflag_internal",
 | |
|         ":config",
 | |
|         ":private_handle_accessor",
 | |
|         "//absl/base:config",
 | |
|         "//absl/base:core_headers",
 | |
|         "//absl/container:flat_hash_map",
 | |
|         "//absl/strings",
 | |
|         "//absl/synchronization",
 | |
|     ],
 | |
| )
 | |
| 
 | |
| 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 = [
 | |
|         ":commandlineflag",
 | |
|         ":commandlineflag_internal",
 | |
|         ":config",
 | |
|         ":marshalling",
 | |
|         ":reflection",
 | |
|         "//absl/base",
 | |
|         "//absl/base:config",
 | |
|         "//absl/base:core_headers",
 | |
|         "//absl/memory",
 | |
|         "//absl/meta:type_traits",
 | |
|         "//absl/strings",
 | |
|         "//absl/synchronization",
 | |
|         "//absl/utility",
 | |
|     ],
 | |
| )
 | |
| 
 | |
| cc_library(
 | |
|     name = "flag",
 | |
|     srcs = [
 | |
|         "flag.cc",
 | |
|     ],
 | |
|     hdrs = [
 | |
|         "declare.h",
 | |
|         "flag.h",
 | |
|     ],
 | |
|     copts = ABSL_DEFAULT_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     deps = [
 | |
|         ":config",
 | |
|         ":flag_internal",
 | |
|         ":reflection",
 | |
|         "//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 = [
 | |
|         ":commandlineflag",
 | |
|         ":config",
 | |
|         ":flag",
 | |
|         ":flag_internal",
 | |
|         ":path_util",
 | |
|         ":private_handle_accessor",
 | |
|         ":program_name",
 | |
|         ":reflection",
 | |
|         "//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 = [
 | |
|         ":commandlineflag",
 | |
|         ":commandlineflag_internal",
 | |
|         ":config",
 | |
|         ":flag",
 | |
|         ":flag_internal",
 | |
|         ":private_handle_accessor",
 | |
|         ":program_name",
 | |
|         ":reflection",
 | |
|         ":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 = [
 | |
|         "commandlineflag_test.cc",
 | |
|     ],
 | |
|     copts = ABSL_TEST_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     deps = [
 | |
|         ":commandlineflag",
 | |
|         ":commandlineflag_internal",
 | |
|         ":config",
 | |
|         ":flag",
 | |
|         ":private_handle_accessor",
 | |
|         ":reflection",
 | |
|         "//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",
 | |
|         ":marshalling",
 | |
|         ":reflection",
 | |
|         "//absl/base:core_headers",
 | |
|         "//absl/base:malloc_internal",
 | |
|         "//absl/strings",
 | |
|         "//absl/time",
 | |
|         "@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",
 | |
|         ":marshalling",
 | |
|         ":parse",
 | |
|         ":reflection",
 | |
|         "//absl/strings",
 | |
|         "//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 = "parse_test",
 | |
|     size = "small",
 | |
|     srcs = [
 | |
|         "parse_test.cc",
 | |
|     ],
 | |
|     copts = ABSL_TEST_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     deps = [
 | |
|         ":flag",
 | |
|         ":parse",
 | |
|         ":reflection",
 | |
|         ":usage_internal",
 | |
|         "//absl/base:raw_logging_internal",
 | |
|         "//absl/base:scoped_set_env",
 | |
|         "//absl/strings",
 | |
|         "//absl/types:span",
 | |
|         "@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 = "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 = "reflection_test",
 | |
|     size = "small",
 | |
|     srcs = [
 | |
|         "reflection_test.cc",
 | |
|     ],
 | |
|     copts = ABSL_TEST_COPTS,
 | |
|     linkopts = ABSL_DEFAULT_LINKOPTS,
 | |
|     deps = [
 | |
|         ":commandlineflag_internal",
 | |
|         ":flag",
 | |
|         ":marshalling",
 | |
|         ":reflection",
 | |
|         ":usage_internal",
 | |
|         "//absl/memory",
 | |
|         "//absl/strings",
 | |
|         "@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",
 | |
|         ":reflection",
 | |
|         ":usage",
 | |
|         ":usage_internal",
 | |
|         "//absl/strings",
 | |
|         "@com_google_googletest//:gtest",
 | |
|     ],
 | |
| )
 |