# Copyright (c) 2009-2021, Google LLC
# All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd

load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
load("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_cc//cc:cc_test.bzl", "cc_test")
load("//bazel:proto_library.bzl", "proto_library")
load(
    "//lua:lua_proto_library.bzl",
    "lua_proto_library",
)
load(
    "//upb/bazel:copts.bzl",
    "UPB_DEFAULT_COPTS",
    "UPB_DEFAULT_CPPOPTS",
)

licenses(["notice"])

cc_library(
    name = "lupb",
    srcs = [
        "def.c",
        "msg.c",
        "upb.c",
    ],
    hdrs = [
        "upb.h",
    ],
    copts = UPB_DEFAULT_COPTS + ["-Wno-tautological-constant-out-of-range-compare"],
    visibility = ["//visibility:public"],
    deps = [
        "//upb/json",
        "//upb/message",
        "//upb/port",
        "//upb/reflection",
        "//upb/text",
        "@lua//:liblua",
    ],
)

cc_binary(
    name = "protoc-gen-lua",
    srcs = ["upbc.cc"],
    copts = UPB_DEFAULT_CPPOPTS,
    visibility = ["//visibility:public"],
    deps = [
        "//src/google/protobuf",
        "//src/google/protobuf/compiler:code_generator",
        "//src/google/protobuf/io:printer",
        "@abseil-cpp//absl/strings",
    ],
)

exports_files(["upb.lua"])

cc_test(
    name = "test_lua",
    srcs = ["main.c"],
    args = ["$(location :test_upb.lua)"],
    copts = UPB_DEFAULT_COPTS,
    data = [
        "test_upb.lua",
        "upb.lua",
        ":descriptor_proto_lua",
        ":empty_proto_lua",
        ":test_messages_proto2_proto_lua",
        ":test_messages_proto3_proto_lua",
        ":test_proto_lua",
        "//:descriptor_proto",
        "//conformance:conformance_proto",
    ],
    linkstatic = 1,
    deps = [
        ":lupb",
        "@lua//:liblua",
    ],
)

proto_library(
    name = "test_proto",
    testonly = 1,
    srcs = ["test.proto"],
    deps = ["//:timestamp_proto"],
)

lua_proto_library(
    name = "test_proto_lua",
    testonly = 1,
    deps = [":test_proto"],
)

lua_proto_library(
    name = "descriptor_proto_lua",
    deps = ["//:descriptor_proto"],
)

lua_proto_library(
    name = "empty_proto_lua",
    deps = ["//:empty_proto"],
)

lua_proto_library(
    name = "test_messages_proto3_proto_lua",
    testonly = 1,
    deps = ["//src/google/protobuf:test_messages_proto3_proto"],
)

lua_proto_library(
    name = "test_messages_proto2_proto_lua",
    testonly = 1,
    deps = ["//src/google/protobuf:test_messages_proto2_proto"],
)
