load("@bazel_skylib//rules:expand_template.bzl", "expand_template") load("@rules_cc//cc:cc_library.bzl", "cc_library") SUBSTITUTIONS = { "@BUILD@": "20230208", "@CMAKE_PROJECT_NAME@": "libjpeg-turbo", "@COPYRIGHT_YEAR@": "2023", "@INLINE@": "LJT_INLINE", "@JPEG_LIB_VERSION@": "62", "@LIBJPEG_TURBO_VERSION_NUMBER@": "2001091", "@SIZE_T@": "8", "@THREAD_LOCAL@": "__thread", "@VERSION@": "2.1.91", } YES_DEFINES = [ "C_ARITH_CODING_SUPPORTED", "D_ARITH_CODING_SUPPORTED", "HAVE_BUILTIN_CTZL", "MEM_SRCDST_SUPPORTED", ] NO_DEFINES = [ "WITH_SIMD", "RIGHT_SHIFT_IS_UNSIGNED", "HAVE_INTRIN_H", ] SUBSTITUTIONS.update({ "#cmakedefine " + key: "#define " + key for key in YES_DEFINES }) SUBSTITUTIONS.update({ "#cmakedefine " + key: "// #define " + key for key in NO_DEFINES }) [ expand_template( name = "expand_" + src, out = src, substitutions = SUBSTITUTIONS, template = src + ".in", visibility = ["//visibility:public"], ) for src in [ "jconfig.h", "jconfigint.h", "jversion.h", ] ] JPEG16_SOURCES = [ "jccolor.c", "jcdiffct.c", "jclossls.c", "jcmainct.c", "jcprepct.c", "jcsample.c", "jdcolor.c", "jddiffct.c", "jdlossls.c", "jdmainct.c", "jdmerge.c", "jdpostct.c", "jdsample.c", "jquant1.c", "jquant2.c", "jutils.c", ] JPEG12_SOURCES = JPEG16_SOURCES + [ "jccoefct.c", "jcdctmgr.c", "jdcoefct.c", "jddctmgr.c", "jfdctfst.c", "jfdctint.c", "jidctflt.c", "jidctfst.c", "jidctint.c", "jidctred.c", ] JPEG_SOURCES = JPEG12_SOURCES + [ "jaricom.c", "jcapimin.c", "jcapistd.c", "jcarith.c", "jchuff.c", "jcicc.c", "jcinit.c", "jclhuff.c", "jcmarker.c", "jcmaster.c", "jcomapi.c", "jcparam.c", "jcphuff.c", "jdapimin.c", "jdapistd.c", "jdarith.c", "jdatadst.c", "jdatasrc.c", "jdhuff.c", "jdicc.c", "jdinput.c", "jdlhuff.c", "jdmarker.c", "jdmaster.c", "jdphuff.c", "jdtrans.c", "jerror.c", "jfdctflt.c", "jmemmgr.c", "jmemnobs.c", ] JPEG_HEADERS = [ "jccolext.c", "jchuff.h", "jcmaster.h", "jconfig.h", "jconfigint.h", "jdcoefct.h", "jdcol565.c", "jdcolext.c", "jdct.h", "jdhuff.h", "jdmainct.h", "jdmaster.h", "jdmerge.h", "jdmrg565.c", "jdmrgext.c", "jdsample.h", "jerror.h", "jinclude.h", "jlossls.h", "jmemsys.h", "jmorecfg.h", "jpeg_nbits_table.h", "jpegapicomp.h", "jpegint.h", "jpeglib.h", "jsamplecomp.h", "jsimd.h", "jsimddct.h", "jstdhuff.c", "jversion.h", ] JPEG_DEFINES = select({ "@platforms//os:windows": ["LJT_INLINE=__inline"], "//conditions:default": ["LJT_INLINE=__inline"], }) cc_library( name = "jpeg16", srcs = JPEG16_SOURCES, hdrs = JPEG_HEADERS, defines = JPEG_DEFINES, local_defines = ["BITS_IN_JSAMPLE=16"], visibility = ["//visibility:public"], ) cc_library( name = "jpeg12", srcs = JPEG12_SOURCES, hdrs = JPEG_HEADERS, defines = JPEG_DEFINES, local_defines = ["BITS_IN_JSAMPLE=12"], visibility = ["//visibility:public"], ) cc_library( name = "jpeg", srcs = JPEG_SOURCES, hdrs = JPEG_HEADERS, defines = JPEG_DEFINES, includes = ["."], visibility = ["//visibility:public"], deps = [ ":jpeg12", ":jpeg16", ], ) exports_files([ "jmorecfg.h", "jpeglib.h", ])