# This file will be copied into //third_party/externals/wuffs via the new_local_repository
# rule in WORKSPACE.bazel, so all files should be relative to that path.

cc_library(
    name = "wuffs",
    # We list this file both as a source file and a header file because it will be
    # compiled for symbols *and* included as a header file.
    srcs = ["release/c/wuffs-v0.3.c"],
    # Thankfully, Bazel doesn't mind a .c file being declared as a public "header".
    hdrs = ["release/c/wuffs-v0.3.c"],
    includes = ["release/c"],
    local_defines = [
        # Copy/pasting from "release/c/wuffs-*.c":
        #
        # ----
        #
        # Wuffs ships as a "single file C library" or "header file library" as per
        # https://github.com/nothings/stb/blob/master/docs/stb_howto.txt
        #
        # To use that single file as a "foo.c"-like implementation, instead of a
        # "foo.h"-like header, #define WUFFS_IMPLEMENTATION before #include'ing or
        # compiling it.
        #
        # ----
        "WUFFS_IMPLEMENTATION",

        # Continuing to copy/paste:
        #
        # ----
        #
        # Defining the WUFFS_CONFIG__MODULE* macros are optional, but it lets users
        # of Wuffs' .c file specify which parts of Wuffs to build. That file
        # contains the entire Wuffs standard library, implementing a variety of
        # codecs and file formats. Without this macro definition, an optimizing
        # compiler or linker may very well discard Wuffs code for unused codecs,
        # but listing the Wuffs modules we use makes that process explicit.
        # Preprocessing means that such code simply isn't compiled.
        #
        # ----
        #
        # For Skia, we're only interested in particular image codes (e.g. GIF) and
        # their dependencies (e.g. BASE, LZW).
        "WUFFS_CONFIG__MODULES",
        "WUFFS_CONFIG__MODULE__BASE",
        "WUFFS_CONFIG__MODULE__GIF",
        "WUFFS_CONFIG__MODULE__LZW",
    ],
    visibility = ["//visibility:public"],
)
