################################################################################
# Protocol Buffers Compiler
################################################################################

load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
load(
    "@rules_pkg//:mappings.bzl",
    "pkg_attributes",
    "pkg_files",
    "strip_prefix",
)
load("@rules_proto//proto:defs.bzl", "proto_library")
load("//build_defs:arch_tests.bzl", "aarch64_test", "x86_64_test")
load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS", "PROTOC_LINK_OPTS")

proto_library(
    name = "plugin_proto",
    srcs = ["plugin.proto"],
    visibility = [
        "//:__pkg__",
        "//pkg:__pkg__",
    ],
    deps = ["//:descriptor_proto"],
)

cc_library(
    name = "importer",
    srcs = [
        "importer.cc",
        "parser.cc",
    ],
    hdrs = [
        "importer.h",
        "parser.h",
    ],
    copts = COPTS,
    include_prefix = "google/protobuf/compiler",
    visibility = ["//visibility:public"],
    deps = [
        "//src/google/protobuf:protobuf_nowkt",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "code_generator",
    srcs = [
        "code_generator.cc",
        "plugin.cc",
        "plugin.pb.cc",
    ],
    hdrs = [
        "code_generator.h",
        "plugin.h",
        "plugin.pb.h",
        "scc.h",
    ],
    copts = COPTS,
    include_prefix = "google/protobuf/compiler",
    visibility = ["//visibility:public"],
    deps = [
        "//src/google/protobuf:protobuf_nowkt",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "command_line_interface",
    srcs = [
        "command_line_interface.cc",
        "subprocess.cc",
        "zip_writer.cc",
    ],
    hdrs = [
        "command_line_interface.h",
        "subprocess.h",
        "zip_writer.h",
    ],
    copts = COPTS,
    include_prefix = "google/protobuf/compiler",
    visibility = ["//visibility:public"],
    deps = [
        ":code_generator",
        ":importer",
        "//src/google/protobuf:protobuf_nowkt",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
    ],
)

cc_library(
    name = "protoc_lib_nowkt",
    srcs = [
        "main.cc",
    ],
    copts = COPTS,
    deps = [
        ":code_generator",
        ":command_line_interface",
        ":importer",
        "//src/google/protobuf:protobuf_nowkt",
        "//src/google/protobuf/compiler/cpp",
        "//src/google/protobuf/compiler/csharp",
        "//src/google/protobuf/compiler/java",
        "//src/google/protobuf/compiler/objectivec",
        "//src/google/protobuf/compiler/php",
        "//src/google/protobuf/compiler/python",
        "//src/google/protobuf/compiler/ruby",
    ],
)

cc_binary(
    name = "protoc_nowkt",
    copts = COPTS,
    linkopts = LINK_OPTS + PROTOC_LINK_OPTS,
    visibility = [
        "//src/google/protobuf:__pkg__",
    ],
    deps = [":protoc_lib_nowkt"],
)

cc_library(
    name = "protoc_lib",
    copts = COPTS,
    visibility = [
        "//:__pkg__",
        "//pkg:__pkg__",
    ],
    deps = [
        ":protoc_lib_nowkt",
        "//:protobuf",
    ],
)

# Note: this is an alias for now. In the future, this rule will become the
# cc_binary for protoc, and //:protoc will become an alias.
alias(
    name = "protoc",
    actual = "//:protoc",
    visibility = ["//visibility:public"],
)

# Test that the protoc binary is built for the correct architecture.
aarch64_test(
    name = "protoc_aarch64_test",
    bazel_binaries = ["//:protoc"],
)

x86_64_test(
    name = "protoc_x86_64_test",
    bazel_binaries = ["//:protoc"],
)

################################################################################
# Tests and support libraries
################################################################################

cc_library(
    name = "annotation_test_util",
    testonly = 1,
    srcs = ["annotation_test_util.cc"],
    hdrs = ["annotation_test_util.h"],
    copts = COPTS,
    strip_include_prefix = "/src",
    visibility = ["//visibility:public"],
    deps = [
        ":code_generator",
        ":command_line_interface",
        "//:protobuf",
        "//src/google/protobuf/io",
        "//src/google/protobuf/testing",
    ],
)

################################################################################
# Tests
################################################################################

filegroup(
    name = "plugin_proto_srcs",
    testonly = 1,
    srcs = [
        "plugin.pb.cc",
        "plugin.pb.h",
        "plugin.proto",
    ],
    visibility = [
        "//src/google/protobuf/compiler/cpp:__pkg__",
    ],
)

exports_files(
    srcs = ["plugin.proto"],
    visibility = ["//:__pkg__"],
)

cc_library(
    name = "mock_code_generator",
    testonly = 1,
    srcs = ["mock_code_generator.cc"],
    hdrs = ["mock_code_generator.h"],
    copts = COPTS,
    strip_include_prefix = "/src",
    visibility = ["//pkg:__pkg__"],
    deps = [
        ":code_generator",
        "//src/google/protobuf/io",
        "//src/google/protobuf/stubs",
        "//src/google/protobuf/testing",
    ],
)

cc_binary(
    name = "test_plugin",
    testonly = 1,
    srcs = ["test_plugin.cc"],
    copts = COPTS,
    deps = [
        ":code_generator",
        ":mock_code_generator",
    ],
)

cc_test(
    name = "command_line_interface_unittest",
    srcs = ["command_line_interface_unittest.cc"],
    copts = COPTS + select({
        "//build_defs:config_msvc": [],
        "//conditions:default": [
            "-Wno-deprecated",
            "-Wno-deprecated-declarations",
        ],
    }) + [
        # Note: This only works on Windows with symlinks and runfiles enabled.
        "-DGOOGLE_PROTOBUF_TEST_PLUGIN_PATH=\\\"$(rootpath :test_plugin)\\\"",
    ],
    data = [
        ":test_plugin",
        "//:test_proto_srcs",
        "//src/google/protobuf:testdata",
    ],
    deps = [
        ":code_generator",
        ":command_line_interface",
        ":mock_code_generator",
        "//:protobuf",
        "//src/google/protobuf/compiler/cpp:names",
        "//src/google/protobuf:cc_test_protos",
        "//src/google/protobuf:test_util2",
        "//src/google/protobuf/io",
        "//src/google/protobuf/stubs",
        "//src/google/protobuf/testing",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "importer_unittest",
    srcs = ["importer_unittest.cc"],
    copts = COPTS,
    deps = [
        ":importer",
        "//:protobuf",
        "//src/google/protobuf/io",
        "//src/google/protobuf/stubs",
        "//src/google/protobuf/testing",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "parser_unittest",
    srcs = ["parser_unittest.cc"],
    copts = COPTS + select({
        "//build_defs:config_msvc": [],
        "//conditions:default": [
            "-Wno-deprecated",
            "-Wno-deprecated-declarations",
        ],
    }),
    deps = [
        ":importer",
        "//:protobuf",
        "//src/google/protobuf:cc_test_protos",
        "//src/google/protobuf:test_util2",
        "//src/google/protobuf/io",
        "//src/google/protobuf/stubs",
        "//src/google/protobuf/testing",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

################################################################################
# Generates protoc release artifacts.
################################################################################

genrule(
    name = "protoc_readme",
    outs = ["readme.txt"],
    cmd = """
echo "Protocol Buffers - Google's data interchange format
Copyright 2008 Google Inc.
https://developers.google.com/protocol-buffers/
This package contains a precompiled binary version of the protocol buffer
compiler (protoc). This binary is intended for users who want to use Protocol
Buffers in languages other than C++ but do not want to compile protoc
themselves. To install, simply place this binary somewhere in your PATH.
If you intend to use the included well known types then don't forget to
copy the contents of the 'include' directory somewhere as well, for example
into '/usr/local/include/'.
Please refer to our official github site for more installation instructions:
  https://github.com/protocolbuffers/protobuf" > $@
    """,
    visibility = ["//:__pkg__"],
)

pkg_files(
    name = "compiler_plugin_protos_files",
    srcs = ["plugin.proto"],
    prefix = "include/google/protobuf/compiler",
    visibility = ["//pkg:__pkg__"],
)

pkg_files(
    name = "protoc_files",
    srcs = [":protoc"],
    attributes = pkg_attributes(mode = "0555"),
    prefix = "bin/",
    visibility = ["//:__pkg__"],
)

################################################################################
# Distribution packaging
################################################################################

pkg_files(
    name = "dist_files",
    srcs = glob(["**/*"]),
    strip_prefix = strip_prefix.from_root(""),
    visibility = ["//src:__pkg__"],
)

filegroup(
    name = "test_srcs",
    srcs = glob([
        "*_test.cc",
        "*unittest.cc",
    ]) + [
        "//src/google/protobuf/compiler/cpp:test_srcs",
        "//src/google/protobuf/compiler/csharp:test_srcs",
        "//src/google/protobuf/compiler/java:test_srcs",
        "//src/google/protobuf/compiler/objectivec:test_srcs",
        "//src/google/protobuf/compiler/php:test_srcs",
        "//src/google/protobuf/compiler/python:test_srcs",
        "//src/google/protobuf/compiler/ruby:test_srcs",
    ],
    visibility = ["//pkg:__pkg__"],
)

filegroup(
    name = "test_plugin_srcs",
    srcs = ["test_plugin.cc"],
    visibility = ["//pkg:__pkg__"],
)

filegroup(
    name = "test_proto_srcs",
    srcs = [
        "//src/google/protobuf/compiler/cpp:test_proto_srcs",
    ],
    visibility = ["//pkg:__pkg__"],
)
