blob: 6fc670ac72bbe4e0e30248108f39d356e20bf041 [file] [log] [blame]
load("@rules_cc//cc:defs.bzl", "cc_library")
package(default_visibility = ["//:__subpackages__"])
cc_library(
name = "libpng",
srcs = [
"externals/libpng/png.c",
"externals/libpng/pngerror.c",
"externals/libpng/pngget.c",
"externals/libpng/pngmem.c",
"externals/libpng/pngpread.c",
"externals/libpng/pngread.c",
"externals/libpng/pngrio.c",
"externals/libpng/pngrtran.c",
"externals/libpng/pngrutil.c",
"externals/libpng/pngset.c",
"externals/libpng/pngtrans.c",
"externals/libpng/pngwio.c",
"externals/libpng/pngwrite.c",
"externals/libpng/pngwtran.c",
"externals/libpng/pngwutil.c",
# TODO(kjlubick) arm/x86 support
],
hdrs = ["libpng/pnglibconf.h"] + glob([
"externals/libpng/*.h",
]),
copts = [
"-Ithird_party/libpng/",
"-Wno-unused-but-set-variable",
],
includes = [
# This adds -isystem "third_party/externals/libpng" to any dependent
# compilation steps. This allows #include <png.h> to work
"externals/libpng",
# png.h attempts to #include "pnglibconf.h" , which we store in //third_party/libpng/
# This rule adds -isystem "third_party/externals/libpng" to any dependent
# rule on this, which avoids having to add "-Ithird_party/libpng/" to copts for
# those dependent rules.
"libpng",
],
textual_hdrs = ["externals/libpng/scripts/pnglibconf.h.prebuilt"],
deps = [":zlib"],
)
cc_library(
name = "zlib",
srcs = [
"externals/zlib/adler32.c",
"externals/zlib/compress.c",
"externals/zlib/cpu_features.c",
"externals/zlib/crc32.c",
"externals/zlib/deflate.c",
"externals/zlib/gzclose.c",
"externals/zlib/gzlib.c",
"externals/zlib/gzread.c",
"externals/zlib/gzwrite.c",
"externals/zlib/infback.c",
"externals/zlib/inffast.c",
"externals/zlib/inflate.c",
"externals/zlib/inftrees.c",
"externals/zlib/trees.c",
"externals/zlib/uncompr.c",
"externals/zlib/zutil.c",
] + glob([
"externals/zlib/**/*.h",
]),
hdrs = glob([
"externals/zlib/*.h",
]),
copts = [
"-Wno-unused-function",
],
strip_include_prefix = "externals/zlib/",
)
# This library is used to fix linking errors when trying to statically link in some symbols
# The symbols defined here:
# https://github.com/llvm/llvm-project/blob/main/libcxx/include/__support/musl/xlocale.h
# are defined to be inlined, however they are missing during the final linking of a static
# executable. By re-defining them in our own .a file, this makes the linker happy.
cc_library(
name = "musl_compat",
srcs = [
"musl_compat/locale.c",
],
)