# Copyright 2021 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 = "yaml",
    srcs = [
        "src/api.c",
        "src/dumper.c",
        "src/emitter.c",
        "src/loader.c",
        "src/parser.c",
        "src/reader.c",
        "src/scanner.c",
        "src/writer.c",
        "src/yaml_private.h",
    ],
    hdrs = [
        "include/yaml.h",
    ],
    copts = [
        "-D_CRT_SECURE_NO_WARNINGS",
        "-DYAML_DECLARE_STATIC",
        '-DYAML_VERSION_STRING=\\"0.2.5\\"',
        "-DYAML_VERSION_MAJOR=0",
        "-DYAML_VERSION_MINOR=2",
        "-DYAML_VERSION_PATCH=5",
        "-Iexternal/com_github_yaml_libyaml/include/",
    ],
    includes = [
      "include/",
    ],
    strip_include_prefix = "include",
)
