#
# 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,
    visibility = ["//visibility:private"],
    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",
        "//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",
        "//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",
    ],
)
