# Copyright 2020 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

package(default_visibility = ["//visibility:public"])

cc_library(
    name = "runtime",
    srcs = [
        "config/config.h",
        "src/runtime/builder.c",
        "src/runtime/emitter.c",
        "src/runtime/json_parser.c",
        "src/runtime/json_printer.c",
        "src/runtime/refmap.c",
        "src/runtime/verifier.c",
    ],
    hdrs = [
        "include/flatcc/flatcc_accessors.h",
        "include/flatcc/flatcc_alloc.h",
        "include/flatcc/flatcc_assert.h",
        "include/flatcc/flatcc_builder.h",
        "include/flatcc/flatcc_emitter.h",
        "include/flatcc/flatcc_endian.h",
        "include/flatcc/flatcc_epilogue.h",
        "include/flatcc/flatcc_flatbuffers.h",
        "include/flatcc/flatcc_identifier.h",
        "include/flatcc/flatcc_iov.h",
        "include/flatcc/flatcc_portable.h",
        "include/flatcc/flatcc_prologue.h",
        "include/flatcc/flatcc_refmap.h",
        "include/flatcc/flatcc_rtconfig.h",
        "include/flatcc/flatcc_types.h",
        "include/flatcc/flatcc_unaligned.h",
        "include/flatcc/flatcc_verifier.h",
        "include/flatcc/reflection/flatbuffers_common_builder.h",
        "include/flatcc/reflection/flatbuffers_common_reader.h",
    ] + glob(["include/flatcc/portable/**/*.h"]),
    textual_hdrs = [
        "include/flatcc/flatcc_json_parser.h",
        "include/flatcc/flatcc_json_printer.h",
    ],
    copts = [
        "-Iexternal/com_github_dvidelabs_flatcc/config/",
        "-Iexternal/com_github_dvidelabs_flatcc/include/",
    ] + select({
        "@bazel_tools//src/conditions:windows": [],
        "//conditions:default": [
            "-Wno-implicit-fallthrough",
        ],
    }),
    includes = [
      "include/",
    ],
    strip_include_prefix = "include",
)

cc_library(
    name = "compiler",
    srcs = glob([
        "external/**/*.c",
        "external/**/*.h",
        "src/compiler/**/*.c",
        "src/compiler/**/*.h",
    ], exclude = [
        "external/lex/luthor.c",
        "**/*_test.c",
    ]),
    hdrs = glob([
        "config/config.h",
        "include/**/*.h",
    ]),
    textual_hdrs = [
        "external/lex/luthor.c",
    ] + glob([
        "external/**/*.h",
    ]),
    copts = [
      "-Iexternal/com_github_dvidelabs_flatcc/config/",
      "-Iexternal/com_github_dvidelabs_flatcc/external/",
      "-Iexternal/com_github_dvidelabs_flatcc/include/",
    ],
)

cc_binary(
    name = "flatcc",
    srcs = [
        "src/cli/flatcc_cli.c",
    ],
    deps = [
        ":compiler",
        ":runtime",
    ],
    copts = [
      "-Iexternal/com_github_dvidelabs_flatcc/config/",
      "-Iexternal/com_github_dvidelabs_flatcc/external/",
      "-Iexternal/com_github_dvidelabs_flatcc/include/",
    ],
)
