From 6919ab5787e6384d709adf051dc1ce99236b76bc Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Fri, 5 Oct 2018 12:33:55 -0700 Subject: Convert TensorFlow's jpeg dependency to new third party import method. PiperOrigin-RevId: 215948571 --- third_party/jpeg/BUILD | 2 +- third_party/jpeg/BUILD.bazel | 752 ++++++++++++++++++++++++++++++ third_party/jpeg/BUILD.system | 12 + third_party/jpeg/jpeg.BUILD | 751 ----------------------------- third_party/jpeg/jpeg_helpers.BUILD.bazel | 1 + third_party/jpeg/workspace.bzl | 17 + third_party/systemlibs/jpeg.BUILD | 12 - 7 files changed, 783 insertions(+), 764 deletions(-) create mode 100644 third_party/jpeg/BUILD.bazel create mode 100644 third_party/jpeg/BUILD.system delete mode 100644 third_party/jpeg/jpeg.BUILD create mode 100644 third_party/jpeg/jpeg_helpers.BUILD.bazel create mode 100644 third_party/jpeg/workspace.bzl delete mode 100644 third_party/systemlibs/jpeg.BUILD (limited to 'third_party') diff --git a/third_party/jpeg/BUILD b/third_party/jpeg/BUILD index 5b01f6e3e4..e3aec1fce9 100644 --- a/third_party/jpeg/BUILD +++ b/third_party/jpeg/BUILD @@ -1 +1 @@ -licenses(["notice"]) +# Needed to make this a package. diff --git a/third_party/jpeg/BUILD.bazel b/third_party/jpeg/BUILD.bazel new file mode 100644 index 0000000000..5243e995a3 --- /dev/null +++ b/third_party/jpeg/BUILD.bazel @@ -0,0 +1,752 @@ +# Description: +# libjpeg-turbo is a drop in replacement for jpeglib optimized with SIMD. + +licenses(["notice"]) # custom notice-style license, see LICENSE.md + +exports_files(["LICENSE.md"]) + +load("@org_tensorflow//third_party:common.bzl", "template_rule") + +libjpegturbo_nocopts = "-[W]error" + +WIN_COPTS = [ + "/Ox", + "-DWITH_SIMD", + "-wd4996", +] + +libjpegturbo_copts = select({ + ":android": [ + "-O2", + "-fPIE", + "-w", + ], + ":windows": WIN_COPTS, + "//conditions:default": [ + "-O3", + "-w", + ], +}) + select({ + ":armeabi-v7a": [ + "-D__ARM_NEON__", + "-march=armv7-a", + "-mfloat-abi=softfp", + "-fprefetch-loop-arrays", + ], + ":linux_ppc64le": [ + "-mcpu=power8", + "-mtune=power8", + ], + "//conditions:default": [], +}) + +cc_library( + name = "jpeg", + srcs = [ + "jaricom.c", + "jcapimin.c", + "jcapistd.c", + "jcarith.c", + "jccoefct.c", + "jccolor.c", + "jcdctmgr.c", + "jchuff.c", + "jchuff.h", + "jcinit.c", + "jcmainct.c", + "jcmarker.c", + "jcmaster.c", + "jcomapi.c", + "jconfig.h", + "jconfigint.h", + "jcparam.c", + "jcphuff.c", + "jcprepct.c", + "jcsample.c", + "jctrans.c", + "jdapimin.c", + "jdapistd.c", + "jdarith.c", + "jdatadst.c", + "jdatasrc.c", + "jdcoefct.c", + "jdcoefct.h", + "jdcolor.c", + "jdct.h", + "jddctmgr.c", + "jdhuff.c", + "jdhuff.h", + "jdinput.c", + "jdmainct.c", + "jdmainct.h", + "jdmarker.c", + "jdmaster.c", + "jdmaster.h", + "jdmerge.c", + "jdphuff.c", + "jdpostct.c", + "jdsample.c", + "jdsample.h", + "jdtrans.c", + "jerror.c", + "jfdctflt.c", + "jfdctfst.c", + "jfdctint.c", + "jidctflt.c", + "jidctfst.c", + "jidctint.c", + "jidctred.c", + "jinclude.h", + "jmemmgr.c", + "jmemnobs.c", + "jmemsys.h", + "jpeg_nbits_table.h", + "jpegcomp.h", + "jquant1.c", + "jquant2.c", + "jutils.c", + "jversion.h", + ], + hdrs = [ + "jccolext.c", # should have been named .inc + "jdcol565.c", # should have been named .inc + "jdcolext.c", # should have been named .inc + "jdmrg565.c", # should have been named .inc + "jdmrgext.c", # should have been named .inc + "jerror.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jstdhuff.c", # should have been named .inc + ], + copts = libjpegturbo_copts, + nocopts = libjpegturbo_nocopts, + visibility = ["//visibility:public"], + deps = select({ + ":k8": [":simd_x86_64"], + ":armeabi-v7a": [":simd_armv7a"], + ":arm64-v8a": [":simd_armv8a"], + ":linux_ppc64le": [":simd_altivec"], + ":windows": [":simd_win_x86_64"], + "//conditions:default": [":simd_none"], + }), +) + +cc_library( + name = "simd_altivec", + srcs = [ + "jchuff.h", + "jconfig.h", + "jdct.h", + "jerror.h", + "jinclude.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jsimd.h", + "jsimddct.h", + "simd/jsimd.h", + "simd/powerpc/jccolor-altivec.c", + "simd/powerpc/jcgray-altivec.c", + "simd/powerpc/jcsample-altivec.c", + "simd/powerpc/jdcolor-altivec.c", + "simd/powerpc/jdmerge-altivec.c", + "simd/powerpc/jdsample-altivec.c", + "simd/powerpc/jfdctfst-altivec.c", + "simd/powerpc/jfdctint-altivec.c", + "simd/powerpc/jidctfst-altivec.c", + "simd/powerpc/jidctint-altivec.c", + "simd/powerpc/jquanti-altivec.c", + "simd/powerpc/jsimd.c", + ], + hdrs = [ + "simd/powerpc/jccolext-altivec.c", + "simd/powerpc/jcgryext-altivec.c", + "simd/powerpc/jcsample.h", + "simd/powerpc/jdcolext-altivec.c", + "simd/powerpc/jdmrgext-altivec.c", + "simd/powerpc/jsimd_altivec.h", + ], + copts = libjpegturbo_copts, + nocopts = libjpegturbo_nocopts, +) + +cc_library( + name = "simd_x86_64", + srcs = [ + "jchuff.h", + "jconfig.h", + "jconfigint.h", + "jdct.h", + "jerror.h", + "jinclude.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jsimd.h", + "jsimddct.h", + "simd/jsimd.h", + "simd/x86_64/jccolor-avx2.o", + "simd/x86_64/jccolor-sse2.o", + "simd/x86_64/jcgray-avx2.o", + "simd/x86_64/jcgray-sse2.o", + "simd/x86_64/jchuff-sse2.o", + "simd/x86_64/jcphuff-sse2.o", + "simd/x86_64/jcsample-avx2.o", + "simd/x86_64/jcsample-sse2.o", + "simd/x86_64/jdcolor-avx2.o", + "simd/x86_64/jdcolor-sse2.o", + "simd/x86_64/jdmerge-avx2.o", + "simd/x86_64/jdmerge-sse2.o", + "simd/x86_64/jdsample-avx2.o", + "simd/x86_64/jdsample-sse2.o", + "simd/x86_64/jfdctflt-sse.o", + "simd/x86_64/jfdctfst-sse2.o", + "simd/x86_64/jfdctint-avx2.o", + "simd/x86_64/jfdctint-sse2.o", + "simd/x86_64/jidctflt-sse2.o", + "simd/x86_64/jidctfst-sse2.o", + "simd/x86_64/jidctint-avx2.o", + "simd/x86_64/jidctint-sse2.o", + "simd/x86_64/jidctred-sse2.o", + "simd/x86_64/jquantf-sse2.o", + "simd/x86_64/jquanti-avx2.o", + "simd/x86_64/jquanti-sse2.o", + "simd/x86_64/jsimd.c", + "simd/x86_64/jsimdcpu.o", + ], + copts = libjpegturbo_copts, + linkstatic = 1, + nocopts = libjpegturbo_nocopts, +) + +genrule( + name = "simd_x86_64_assemblage23", + srcs = [ + "jconfig.h", + "jconfigint.h", + "simd/x86_64/jccolext-avx2.asm", + "simd/x86_64/jccolext-sse2.asm", + "simd/x86_64/jccolor-avx2.asm", + "simd/x86_64/jccolor-sse2.asm", + "simd/x86_64/jcgray-avx2.asm", + "simd/x86_64/jcgray-sse2.asm", + "simd/x86_64/jcgryext-avx2.asm", + "simd/x86_64/jcgryext-sse2.asm", + "simd/x86_64/jchuff-sse2.asm", + "simd/x86_64/jcphuff-sse2.asm", + "simd/x86_64/jcsample-avx2.asm", + "simd/x86_64/jcsample-sse2.asm", + "simd/x86_64/jdcolext-avx2.asm", + "simd/x86_64/jdcolext-sse2.asm", + "simd/x86_64/jdcolor-avx2.asm", + "simd/x86_64/jdcolor-sse2.asm", + "simd/x86_64/jdmerge-avx2.asm", + "simd/x86_64/jdmerge-sse2.asm", + "simd/x86_64/jdmrgext-avx2.asm", + "simd/x86_64/jdmrgext-sse2.asm", + "simd/x86_64/jdsample-avx2.asm", + "simd/x86_64/jdsample-sse2.asm", + "simd/x86_64/jfdctflt-sse.asm", + "simd/x86_64/jfdctfst-sse2.asm", + "simd/x86_64/jfdctint-avx2.asm", + "simd/x86_64/jfdctint-sse2.asm", + "simd/x86_64/jidctflt-sse2.asm", + "simd/x86_64/jidctfst-sse2.asm", + "simd/x86_64/jidctint-avx2.asm", + "simd/x86_64/jidctint-sse2.asm", + "simd/x86_64/jidctred-sse2.asm", + "simd/x86_64/jquantf-sse2.asm", + "simd/x86_64/jquanti-avx2.asm", + "simd/x86_64/jquanti-sse2.asm", + "simd/x86_64/jsimdcpu.asm", + "simd/nasm/jcolsamp.inc", + "simd/nasm/jdct.inc", + "simd/nasm/jpeg_nbits_table.inc", + "simd/nasm/jsimdcfg.inc", + "simd/nasm/jsimdcfg.inc.h", + "simd/nasm/jsimdext.inc", + ], + outs = [ + "simd/x86_64/jccolor-avx2.o", + "simd/x86_64/jccolor-sse2.o", + "simd/x86_64/jcgray-avx2.o", + "simd/x86_64/jcgray-sse2.o", + "simd/x86_64/jchuff-sse2.o", + "simd/x86_64/jcphuff-sse2.o", + "simd/x86_64/jcsample-avx2.o", + "simd/x86_64/jcsample-sse2.o", + "simd/x86_64/jdcolor-avx2.o", + "simd/x86_64/jdcolor-sse2.o", + "simd/x86_64/jdmerge-avx2.o", + "simd/x86_64/jdmerge-sse2.o", + "simd/x86_64/jdsample-avx2.o", + "simd/x86_64/jdsample-sse2.o", + "simd/x86_64/jfdctflt-sse.o", + "simd/x86_64/jfdctfst-sse2.o", + "simd/x86_64/jfdctint-avx2.o", + "simd/x86_64/jfdctint-sse2.o", + "simd/x86_64/jidctflt-sse2.o", + "simd/x86_64/jidctfst-sse2.o", + "simd/x86_64/jidctint-avx2.o", + "simd/x86_64/jidctint-sse2.o", + "simd/x86_64/jidctred-sse2.o", + "simd/x86_64/jquantf-sse2.o", + "simd/x86_64/jquanti-avx2.o", + "simd/x86_64/jquanti-sse2.o", + "simd/x86_64/jsimdcpu.o", + ], + cmd = "for out in $(OUTS); do\n" + + " $(location @nasm//:nasm) -f elf64" + + " -DELF -DPIC -D__x86_64__" + + " -I $$(dirname $(location jconfig.h))/" + + " -I $$(dirname $(location jconfigint.h))/" + + " -I $$(dirname $(location simd/nasm/jsimdcfg.inc.h))/" + + " -I $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/" + + " -o $$out" + + " $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/$$(basename $${out%.o}.asm)\n" + + "done", + tools = ["@nasm"], +) + +cc_library( + name = "simd_armv7a", + srcs = [ + "jchuff.h", + "jconfig.h", + "jdct.h", + "jerror.h", + "jinclude.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jsimd.h", + "jsimddct.h", + "simd/arm/jsimd.c", + "simd/arm/jsimd_neon.S", + "simd/jsimd.h", + ], + copts = libjpegturbo_copts, + nocopts = libjpegturbo_nocopts, +) + +cc_library( + name = "simd_armv8a", + srcs = [ + "jchuff.h", + "jconfig.h", + "jdct.h", + "jerror.h", + "jinclude.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jsimd.h", + "jsimddct.h", + "simd/arm64/jsimd.c", + "simd/arm64/jsimd_neon.S", + "simd/jsimd.h", + ], + copts = libjpegturbo_copts, + nocopts = libjpegturbo_nocopts, +) + +cc_library( + name = "simd_win_x86_64", + srcs = [ + "jchuff.h", + "jconfig.h", + "jconfigint.h", + "jdct.h", + "jerror.h", + "jinclude.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jsimd.h", + "jsimddct.h", + "simd/jsimd.h", + "simd/x86_64/jccolor-avx2.obj", + "simd/x86_64/jccolor-sse2.obj", + "simd/x86_64/jcgray-avx2.obj", + "simd/x86_64/jcgray-sse2.obj", + "simd/x86_64/jchuff-sse2.obj", + "simd/x86_64/jcphuff-sse2.obj", + "simd/x86_64/jcsample-avx2.obj", + "simd/x86_64/jcsample-sse2.obj", + "simd/x86_64/jdcolor-avx2.obj", + "simd/x86_64/jdcolor-sse2.obj", + "simd/x86_64/jdmerge-avx2.obj", + "simd/x86_64/jdmerge-sse2.obj", + "simd/x86_64/jdsample-avx2.obj", + "simd/x86_64/jdsample-sse2.obj", + "simd/x86_64/jfdctflt-sse.obj", + "simd/x86_64/jfdctfst-sse2.obj", + "simd/x86_64/jfdctint-avx2.obj", + "simd/x86_64/jfdctint-sse2.obj", + "simd/x86_64/jidctflt-sse2.obj", + "simd/x86_64/jidctfst-sse2.obj", + "simd/x86_64/jidctint-avx2.obj", + "simd/x86_64/jidctint-sse2.obj", + "simd/x86_64/jidctred-sse2.obj", + "simd/x86_64/jquantf-sse2.obj", + "simd/x86_64/jquanti-avx2.obj", + "simd/x86_64/jquanti-sse2.obj", + "simd/x86_64/jsimd.c", + "simd/x86_64/jsimdcpu.obj", + ], + copts = libjpegturbo_copts, +) + +genrule( + name = "simd_win_x86_64_assemble", + srcs = [ + "jconfig.h", + "jconfigint.h", + "simd/x86_64/jccolext-avx2.asm", + "simd/x86_64/jccolext-sse2.asm", + "simd/x86_64/jccolor-avx2.asm", + "simd/x86_64/jccolor-sse2.asm", + "simd/x86_64/jcgray-avx2.asm", + "simd/x86_64/jcgray-sse2.asm", + "simd/x86_64/jcgryext-avx2.asm", + "simd/x86_64/jcgryext-sse2.asm", + "simd/x86_64/jchuff-sse2.asm", + "simd/x86_64/jcphuff-sse2.asm", + "simd/x86_64/jcsample-avx2.asm", + "simd/x86_64/jcsample-sse2.asm", + "simd/x86_64/jdcolext-avx2.asm", + "simd/x86_64/jdcolext-sse2.asm", + "simd/x86_64/jdcolor-avx2.asm", + "simd/x86_64/jdcolor-sse2.asm", + "simd/x86_64/jdmerge-avx2.asm", + "simd/x86_64/jdmerge-sse2.asm", + "simd/x86_64/jdmrgext-avx2.asm", + "simd/x86_64/jdmrgext-sse2.asm", + "simd/x86_64/jdsample-avx2.asm", + "simd/x86_64/jdsample-sse2.asm", + "simd/x86_64/jfdctflt-sse.asm", + "simd/x86_64/jfdctfst-sse2.asm", + "simd/x86_64/jfdctint-avx2.asm", + "simd/x86_64/jfdctint-sse2.asm", + "simd/x86_64/jidctflt-sse2.asm", + "simd/x86_64/jidctfst-sse2.asm", + "simd/x86_64/jidctint-avx2.asm", + "simd/x86_64/jidctint-sse2.asm", + "simd/x86_64/jidctred-sse2.asm", + "simd/x86_64/jquantf-sse2.asm", + "simd/x86_64/jquanti-avx2.asm", + "simd/x86_64/jquanti-sse2.asm", + "simd/x86_64/jsimdcpu.asm", + "simd/nasm/jcolsamp.inc", + "simd/nasm/jdct.inc", + "simd/nasm/jpeg_nbits_table.inc", + "simd/nasm/jsimdcfg.inc", + "simd/nasm/jsimdcfg.inc.h", + "simd/nasm/jsimdext.inc", + ], + outs = [ + "simd/x86_64/jccolor-avx2.obj", + "simd/x86_64/jccolor-sse2.obj", + "simd/x86_64/jcgray-avx2.obj", + "simd/x86_64/jcgray-sse2.obj", + "simd/x86_64/jchuff-sse2.obj", + "simd/x86_64/jcphuff-sse2.obj", + "simd/x86_64/jcsample-avx2.obj", + "simd/x86_64/jcsample-sse2.obj", + "simd/x86_64/jdcolor-avx2.obj", + "simd/x86_64/jdcolor-sse2.obj", + "simd/x86_64/jdmerge-avx2.obj", + "simd/x86_64/jdmerge-sse2.obj", + "simd/x86_64/jdsample-avx2.obj", + "simd/x86_64/jdsample-sse2.obj", + "simd/x86_64/jfdctflt-sse.obj", + "simd/x86_64/jfdctfst-sse2.obj", + "simd/x86_64/jfdctint-avx2.obj", + "simd/x86_64/jfdctint-sse2.obj", + "simd/x86_64/jidctflt-sse2.obj", + "simd/x86_64/jidctfst-sse2.obj", + "simd/x86_64/jidctint-avx2.obj", + "simd/x86_64/jidctint-sse2.obj", + "simd/x86_64/jidctred-sse2.obj", + "simd/x86_64/jquantf-sse2.obj", + "simd/x86_64/jquanti-avx2.obj", + "simd/x86_64/jquanti-sse2.obj", + "simd/x86_64/jsimdcpu.obj", + ], + cmd = "for out in $(OUTS); do\n" + + " $(location @nasm//:nasm) -fwin64 -DWIN64 -D__x86_64__" + + " -I $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/" + + " -I $$(dirname $(location simd/nasm/jdct.inc))/" + + " -I $$(dirname $(location simd/nasm/jdct.inc))/../../win/" + + " -o $$out" + + " $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/$$(basename $${out%.obj}.asm)\n" + + "done", + tools = ["@nasm"], +) + +cc_library( + name = "simd_none", + srcs = [ + "jchuff.h", + "jconfig.h", + "jdct.h", + "jerror.h", + "jinclude.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jsimd.h", + "jsimd_none.c", + "jsimddct.h", + ], + copts = libjpegturbo_copts, + nocopts = libjpegturbo_nocopts, +) + +template_rule( + name = "jconfig_win", + src = "win/jconfig.h.in", + out = "jconfig_win.h", + substitutions = { + "@JPEG_LIB_VERSION@": "62", + "@VERSION@": "2.0.0", + "@LIBJPEG_TURBO_VERSION_NUMBER@": "2000000", + "@BITS_IN_JSAMPLE@": "8", + "#cmakedefine C_ARITH_CODING_SUPPORTED": "#define C_ARITH_CODING_SUPPORTED", + "#cmakedefine D_ARITH_CODING_SUPPORTED": "#define D_ARITH_CODING_SUPPORTED", + "#cmakedefine MEM_SRCDST_SUPPORTED": "#define MEM_SRCDST_SUPPORTED", + "#cmakedefine WITH_SIMD": "", + }, +) + +JCONFIG_NOWIN_COMMON_SUBSTITUTIONS = { + "@JPEG_LIB_VERSION@": "62", + "@VERSION@": "2.0.0", + "@LIBJPEG_TURBO_VERSION_NUMBER@": "2000000", + "#cmakedefine C_ARITH_CODING_SUPPORTED": "#define C_ARITH_CODING_SUPPORTED", + "#cmakedefine D_ARITH_CODING_SUPPORTED": "#define D_ARITH_CODING_SUPPORTED", + "#cmakedefine MEM_SRCDST_SUPPORTED": "#define MEM_SRCDST_SUPPORTED", + "@BITS_IN_JSAMPLE@": "8", + "#cmakedefine HAVE_LOCALE_H": "#define HAVE_LOCALE_H 1", + "#cmakedefine HAVE_STDDEF_H": "#define HAVE_STDDEF_H 1", + "#cmakedefine HAVE_STDLIB_H": "#define HAVE_STDLIB_H 1", + "#cmakedefine NEED_SYS_TYPES_H": "#define NEED_SYS_TYPES_H", + "#cmakedefine NEED_BSD_STRINGS": "", + "#cmakedefine HAVE_UNSIGNED_CHAR": "#define HAVE_UNSIGNED_CHAR 1", + "#cmakedefine HAVE_UNSIGNED_SHORT": "#define HAVE_UNSIGNED_SHORT 1", + "#cmakedefine INCOMPLETE_TYPES_BROKEN": "", + "#cmakedefine RIGHT_SHIFT_IS_UNSIGNED": "", + "#cmakedefine __CHAR_UNSIGNED__": "", + "#undef const": "", + "#undef size_t": "", +} + +JCONFIG_NOWIN_SIMD_SUBSTITUTIONS = { + "#cmakedefine WITH_SIMD": "#define WITH_SIMD", +} + +JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS = { + "#cmakedefine WITH_SIMD": "", +} + +JCONFIG_NOWIN_SIMD_SUBSTITUTIONS.update(JCONFIG_NOWIN_COMMON_SUBSTITUTIONS) + +JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS.update(JCONFIG_NOWIN_COMMON_SUBSTITUTIONS) + +template_rule( + name = "jconfig_nowin_nosimd", + src = "jconfig.h.in", + out = "jconfig_nowin_nosimd.h", + substitutions = JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS, +) + +template_rule( + name = "jconfig_nowin_simd", + src = "jconfig.h.in", + out = "jconfig_nowin_simd.h", + substitutions = JCONFIG_NOWIN_SIMD_SUBSTITUTIONS, +) + +JCONFIGINT_COMMON_SUBSTITUTIONS = { + "@BUILD@": "20180831", + "@VERSION@": "2.0.0", + "@CMAKE_PROJECT_NAME@": "libjpeg-turbo", + "#undef inline": "", + "#cmakedefine HAVE_INTRIN_H": "", +} + +JCONFIGINT_NOWIN_SUBSTITUTIONS = { + "#cmakedefine HAVE_BUILTIN_CTZL": "#define HAVE_BUILTIN_CTZL", + "@INLINE@": "inline __attribute__((always_inline))", + "#define SIZEOF_SIZE_T @SIZE_T@": "#if (__WORDSIZE==64 && !defined(__native_client__))\n" + + "#define SIZEOF_SIZE_T 8\n" + + "#else\n" + + "#define SIZEOF_SIZE_T 4\n" + + "#endif\n", +} + +JCONFIGINT_WIN_SUBSTITUTIONS = { + "#cmakedefine HAVE_BUILTIN_CTZL": "", + "#define INLINE @INLINE@": "#if defined(__GNUC__)\n" + + "#define INLINE inline __attribute__((always_inline))\n" + + "#elif defined(_MSC_VER)\n" + + "#define INLINE __forceinline\n" + + "#else\n" + + "#define INLINE\n" + + "#endif\n", + "#define SIZEOF_SIZE_T @SIZE_T@": "#if (__WORDSIZE==64)\n" + + "#define SIZEOF_SIZE_T 8\n" + + "#else\n" + + "#define SIZEOF_SIZE_T 4\n" + + "#endif\n", +} + +JCONFIGINT_NOWIN_SUBSTITUTIONS.update(JCONFIGINT_COMMON_SUBSTITUTIONS) + +JCONFIGINT_WIN_SUBSTITUTIONS.update(JCONFIGINT_COMMON_SUBSTITUTIONS) + +template_rule( + name = "jconfigint_nowin", + src = "jconfigint.h.in", + out = "jconfigint_nowin.h", + substitutions = JCONFIGINT_NOWIN_SUBSTITUTIONS, +) + +template_rule( + name = "jconfigint_win", + src = "jconfigint.h.in", + out = "jconfigint_win.h", + substitutions = JCONFIGINT_WIN_SUBSTITUTIONS, +) + +genrule( + name = "configure", + srcs = [ + "jconfig_win.h", + "jconfig_nowin_nosimd.h", + "jconfig_nowin_simd.h", + ], + outs = ["jconfig.h"], + cmd = select({ + ":windows": "cp $(location jconfig_win.h) $@", + ":k8": "cp $(location jconfig_nowin_simd.h) $@", + ":armeabi-v7a": "cp $(location jconfig_nowin_simd.h) $@", + ":arm64-v8a": "cp $(location jconfig_nowin_simd.h) $@", + ":linux_ppc64le": "cp $(location jconfig_nowin_simd.h) $@", + "//conditions:default": "cp $(location jconfig_nowin_nosimd.h) $@", + }), +) + +genrule( + name = "configure_internal", + srcs = [ + "jconfigint_win.h", + "jconfigint_nowin.h", + ], + outs = ["jconfigint.h"], + cmd = select({ + ":windows": "cp $(location jconfigint_win.h) $@", + "//conditions:default": "cp $(location jconfigint_nowin.h) $@", + }), +) + +# jiminy cricket the way this file is generated is completely outrageous +genrule( + name = "configure_simd", + outs = ["simd/jsimdcfg.inc"], + cmd = "cat <<'EOF' >$@\n" + + "%define DCTSIZE 8\n" + + "%define DCTSIZE2 64\n" + + "%define RGB_RED 0\n" + + "%define RGB_GREEN 1\n" + + "%define RGB_BLUE 2\n" + + "%define RGB_PIXELSIZE 3\n" + + "%define EXT_RGB_RED 0\n" + + "%define EXT_RGB_GREEN 1\n" + + "%define EXT_RGB_BLUE 2\n" + + "%define EXT_RGB_PIXELSIZE 3\n" + + "%define EXT_RGBX_RED 0\n" + + "%define EXT_RGBX_GREEN 1\n" + + "%define EXT_RGBX_BLUE 2\n" + + "%define EXT_RGBX_PIXELSIZE 4\n" + + "%define EXT_BGR_RED 2\n" + + "%define EXT_BGR_GREEN 1\n" + + "%define EXT_BGR_BLUE 0\n" + + "%define EXT_BGR_PIXELSIZE 3\n" + + "%define EXT_BGRX_RED 2\n" + + "%define EXT_BGRX_GREEN 1\n" + + "%define EXT_BGRX_BLUE 0\n" + + "%define EXT_BGRX_PIXELSIZE 4\n" + + "%define EXT_XBGR_RED 3\n" + + "%define EXT_XBGR_GREEN 2\n" + + "%define EXT_XBGR_BLUE 1\n" + + "%define EXT_XBGR_PIXELSIZE 4\n" + + "%define EXT_XRGB_RED 1\n" + + "%define EXT_XRGB_GREEN 2\n" + + "%define EXT_XRGB_BLUE 3\n" + + "%define EXT_XRGB_PIXELSIZE 4\n" + + "%define RGBX_FILLER_0XFF 1\n" + + "%define JSAMPLE byte ; unsigned char\n" + + "%define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)\n" + + "%define CENTERJSAMPLE 128\n" + + "%define JCOEF word ; short\n" + + "%define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)\n" + + "%define JDIMENSION dword ; unsigned int\n" + + "%define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)\n" + + "%define JSAMPROW POINTER ; JSAMPLE * (jpeglib.h)\n" + + "%define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)\n" + + "%define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)\n" + + "%define JCOEFPTR POINTER ; JCOEF * (jpeglib.h)\n" + + "%define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)\n" + + "%define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)\n" + + "%define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)\n" + + "%define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)\n" + + "%define DCTELEM word ; short\n" + + "%define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)\n" + + "%define float FP32 ; float\n" + + "%define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(float)\n" + + "%define ISLOW_MULT_TYPE word ; must be short\n" + + "%define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)\n" + + "%define IFAST_MULT_TYPE word ; must be short\n" + + "%define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)\n" + + "%define IFAST_SCALE_BITS 2 ; fractional bits in scale factors\n" + + "%define FLOAT_MULT_TYPE FP32 ; must be float\n" + + "%define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)\n" + + "%define JSIMD_NONE 0x00\n" + + "%define JSIMD_MMX 0x01\n" + + "%define JSIMD_3DNOW 0x02\n" + + "%define JSIMD_SSE 0x04\n" + + "%define JSIMD_SSE2 0x08\n" + + "EOF", +) + +config_setting( + name = "k8", + values = {"cpu": "k8"}, +) + +config_setting( + name = "android", + values = {"crosstool_top": "//external:android/crosstool"}, +) + +config_setting( + name = "armeabi-v7a", + values = {"cpu": "armeabi-v7a"}, +) + +config_setting( + name = "arm64-v8a", + values = {"cpu": "arm64-v8a"}, +) + +config_setting( + name = "windows", + values = {"cpu": "x64_windows"}, +) + +config_setting( + name = "linux_ppc64le", + values = {"cpu": "ppc"}, +) diff --git a/third_party/jpeg/BUILD.system b/third_party/jpeg/BUILD.system new file mode 100644 index 0000000000..f4f52da9bd --- /dev/null +++ b/third_party/jpeg/BUILD.system @@ -0,0 +1,12 @@ +licenses(["notice"]) # custom notice-style license, see LICENSE.md + +filegroup( + name = "LICENSE.md", + visibility = ["//visibility:public"], +) + +cc_library( + name = "jpeg", + linkopts = ["-ljpeg"], + visibility = ["//visibility:public"], +) diff --git a/third_party/jpeg/jpeg.BUILD b/third_party/jpeg/jpeg.BUILD deleted file mode 100644 index 1b9b9bf2f5..0000000000 --- a/third_party/jpeg/jpeg.BUILD +++ /dev/null @@ -1,751 +0,0 @@ -# Description: -# libjpeg-turbo is a drop in replacement for jpeglib optimized with SIMD. - -licenses(["notice"]) # custom notice-style license, see LICENSE.md - -exports_files(["LICENSE.md"]) - -load("@org_tensorflow//third_party:common.bzl", "template_rule") - -libjpegturbo_nocopts = "-[W]error" - -WIN_COPTS = [ - "/Ox", - "-DWITH_SIMD", - "-wd4996", -] - -libjpegturbo_copts = select({ - ":android": [ - "-O2", - "-fPIE", - "-w", - ], - ":windows": WIN_COPTS, - "//conditions:default": [ - "-O3", - "-w", - ], -}) + select({ - ":armeabi-v7a": [ - "-D__ARM_NEON__", - "-march=armv7-a", - "-mfloat-abi=softfp", - "-fprefetch-loop-arrays", - ], - ":linux_ppc64le": [ - "-mcpu=power8", - "-mtune=power8", - ], - "//conditions:default": [], -}) - -cc_library( - name = "jpeg", - srcs = [ - "jaricom.c", - "jcapimin.c", - "jcapistd.c", - "jcarith.c", - "jccoefct.c", - "jccolor.c", - "jcdctmgr.c", - "jchuff.c", - "jchuff.h", - "jcinit.c", - "jcmainct.c", - "jcmarker.c", - "jcmaster.c", - "jcomapi.c", - "jconfig.h", - "jconfigint.h", - "jcparam.c", - "jcphuff.c", - "jcprepct.c", - "jcsample.c", - "jctrans.c", - "jdapimin.c", - "jdapistd.c", - "jdarith.c", - "jdatadst.c", - "jdatasrc.c", - "jdcoefct.c", - "jdcoefct.h", - "jdcolor.c", - "jdct.h", - "jddctmgr.c", - "jdhuff.c", - "jdhuff.h", - "jdinput.c", - "jdmainct.c", - "jdmainct.h", - "jdmarker.c", - "jdmaster.c", - "jdmaster.h", - "jdmerge.c", - "jdphuff.c", - "jdpostct.c", - "jdsample.c", - "jdsample.h", - "jdtrans.c", - "jerror.c", - "jfdctflt.c", - "jfdctfst.c", - "jfdctint.c", - "jidctflt.c", - "jidctfst.c", - "jidctint.c", - "jidctred.c", - "jinclude.h", - "jmemmgr.c", - "jmemnobs.c", - "jmemsys.h", - "jpeg_nbits_table.h", - "jpegcomp.h", - "jquant1.c", - "jquant2.c", - "jutils.c", - "jversion.h", - ], - hdrs = [ - "jccolext.c", # should have been named .inc - "jdcol565.c", # should have been named .inc - "jdcolext.c", # should have been named .inc - "jdmrg565.c", # should have been named .inc - "jdmrgext.c", # should have been named .inc - "jerror.h", - "jmorecfg.h", - "jpegint.h", - "jpeglib.h", - "jstdhuff.c", # should have been named .inc - ], - copts = libjpegturbo_copts, - nocopts = libjpegturbo_nocopts, - visibility = ["//visibility:public"], - deps = select({ - ":k8": [":simd_x86_64"], - ":armeabi-v7a": [":simd_armv7a"], - ":arm64-v8a": [":simd_armv8a"], - ":linux_ppc64le": [":simd_altivec"], - ":windows": [":simd_win_x86_64"], - "//conditions:default": [":simd_none"], - }), -) - -cc_library( - name = "simd_altivec", - srcs = [ - "jchuff.h", - "jconfig.h", - "jdct.h", - "jerror.h", - "jinclude.h", - "jmorecfg.h", - "jpegint.h", - "jpeglib.h", - "jsimd.h", - "jsimddct.h", - "simd/jsimd.h", - "simd/powerpc/jccolor-altivec.c", - "simd/powerpc/jcgray-altivec.c", - "simd/powerpc/jcsample-altivec.c", - "simd/powerpc/jdcolor-altivec.c", - "simd/powerpc/jdmerge-altivec.c", - "simd/powerpc/jdsample-altivec.c", - "simd/powerpc/jfdctfst-altivec.c", - "simd/powerpc/jfdctint-altivec.c", - "simd/powerpc/jidctfst-altivec.c", - "simd/powerpc/jidctint-altivec.c", - "simd/powerpc/jquanti-altivec.c", - "simd/powerpc/jsimd.c", - ], - hdrs = [ - "simd/powerpc/jccolext-altivec.c", - "simd/powerpc/jcgryext-altivec.c", - "simd/powerpc/jdcolext-altivec.c", - "simd/powerpc/jdmrgext-altivec.c", - "simd/powerpc/jcsample.h", - "simd/powerpc/jsimd_altivec.h", - ], - copts = libjpegturbo_copts, - nocopts = libjpegturbo_nocopts, -) - -cc_library( - name = "simd_x86_64", - srcs = [ - "jchuff.h", - "jconfig.h", - "jconfigint.h", - "jdct.h", - "jerror.h", - "jinclude.h", - "jmorecfg.h", - "jpegint.h", - "jpeglib.h", - "jsimd.h", - "jsimddct.h", - "simd/jsimd.h", - "simd/x86_64/jsimd.c", - "simd/x86_64/jccolor-avx2.o", - "simd/x86_64/jccolor-sse2.o", - "simd/x86_64/jcgray-avx2.o", - "simd/x86_64/jcgray-sse2.o", - "simd/x86_64/jchuff-sse2.o", - "simd/x86_64/jcphuff-sse2.o", - "simd/x86_64/jcsample-avx2.o", - "simd/x86_64/jcsample-sse2.o", - "simd/x86_64/jdcolor-avx2.o", - "simd/x86_64/jdcolor-sse2.o", - "simd/x86_64/jdmerge-avx2.o", - "simd/x86_64/jdmerge-sse2.o", - "simd/x86_64/jdsample-avx2.o", - "simd/x86_64/jdsample-sse2.o", - "simd/x86_64/jfdctflt-sse.o", - "simd/x86_64/jfdctfst-sse2.o", - "simd/x86_64/jfdctint-avx2.o", - "simd/x86_64/jfdctint-sse2.o", - "simd/x86_64/jidctflt-sse2.o", - "simd/x86_64/jidctfst-sse2.o", - "simd/x86_64/jidctint-avx2.o", - "simd/x86_64/jidctint-sse2.o", - "simd/x86_64/jidctred-sse2.o", - "simd/x86_64/jquantf-sse2.o", - "simd/x86_64/jquanti-avx2.o", - "simd/x86_64/jquanti-sse2.o", - "simd/x86_64/jsimdcpu.o", - ], - copts = libjpegturbo_copts, - linkstatic = 1, - nocopts = libjpegturbo_nocopts, -) - -genrule( - name = "simd_x86_64_assemblage23", - srcs = [ - "jconfig.h", - "jconfigint.h", - "simd/x86_64/jccolext-avx2.asm", - "simd/x86_64/jccolext-sse2.asm", - "simd/x86_64/jccolor-avx2.asm", - "simd/x86_64/jccolor-sse2.asm", - "simd/x86_64/jcgray-avx2.asm", - "simd/x86_64/jcgray-sse2.asm", - "simd/x86_64/jcgryext-avx2.asm", - "simd/x86_64/jcgryext-sse2.asm", - "simd/x86_64/jchuff-sse2.asm", - "simd/x86_64/jcphuff-sse2.asm", - "simd/x86_64/jcsample-avx2.asm", - "simd/x86_64/jcsample-sse2.asm", - "simd/x86_64/jdcolext-avx2.asm", - "simd/x86_64/jdcolext-sse2.asm", - "simd/x86_64/jdcolor-avx2.asm", - "simd/x86_64/jdcolor-sse2.asm", - "simd/x86_64/jdmerge-avx2.asm", - "simd/x86_64/jdmerge-sse2.asm", - "simd/x86_64/jdmrgext-avx2.asm", - "simd/x86_64/jdmrgext-sse2.asm", - "simd/x86_64/jdsample-avx2.asm", - "simd/x86_64/jdsample-sse2.asm", - "simd/x86_64/jfdctflt-sse.asm", - "simd/x86_64/jfdctfst-sse2.asm", - "simd/x86_64/jfdctint-avx2.asm", - "simd/x86_64/jfdctint-sse2.asm", - "simd/x86_64/jidctflt-sse2.asm", - "simd/x86_64/jidctfst-sse2.asm", - "simd/x86_64/jidctint-avx2.asm", - "simd/x86_64/jidctint-sse2.asm", - "simd/x86_64/jidctred-sse2.asm", - "simd/x86_64/jquantf-sse2.asm", - "simd/x86_64/jquanti-avx2.asm", - "simd/x86_64/jquanti-sse2.asm", - "simd/x86_64/jsimdcpu.asm", - "simd/nasm/jcolsamp.inc", - "simd/nasm/jdct.inc", - "simd/nasm/jpeg_nbits_table.inc", - "simd/nasm/jsimdcfg.inc", - "simd/nasm/jsimdcfg.inc.h", - "simd/nasm/jsimdext.inc", - ], - outs = [ - "simd/x86_64/jccolor-avx2.o", - "simd/x86_64/jccolor-sse2.o", - "simd/x86_64/jcgray-avx2.o", - "simd/x86_64/jcgray-sse2.o", - "simd/x86_64/jchuff-sse2.o", - "simd/x86_64/jcphuff-sse2.o", - "simd/x86_64/jcsample-avx2.o", - "simd/x86_64/jcsample-sse2.o", - "simd/x86_64/jdcolor-avx2.o", - "simd/x86_64/jdcolor-sse2.o", - "simd/x86_64/jdmerge-avx2.o", - "simd/x86_64/jdmerge-sse2.o", - "simd/x86_64/jdsample-avx2.o", - "simd/x86_64/jdsample-sse2.o", - "simd/x86_64/jfdctflt-sse.o", - "simd/x86_64/jfdctfst-sse2.o", - "simd/x86_64/jfdctint-avx2.o", - "simd/x86_64/jfdctint-sse2.o", - "simd/x86_64/jidctflt-sse2.o", - "simd/x86_64/jidctfst-sse2.o", - "simd/x86_64/jidctint-avx2.o", - "simd/x86_64/jidctint-sse2.o", - "simd/x86_64/jidctred-sse2.o", - "simd/x86_64/jquantf-sse2.o", - "simd/x86_64/jquanti-avx2.o", - "simd/x86_64/jquanti-sse2.o", - "simd/x86_64/jsimdcpu.o", - ], - cmd = "for out in $(OUTS); do\n" + - " $(location @nasm//:nasm) -f elf64" + - " -DELF -DPIC -D__x86_64__" + - " -I $$(dirname $(location jconfig.h))/" + - " -I $$(dirname $(location jconfigint.h))/" + - " -I $$(dirname $(location simd/nasm/jsimdcfg.inc.h))/" + - " -I $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/" + - " -o $$out" + - " $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/$$(basename $${out%.o}.asm)\n" + - "done", - tools = ["@nasm"], -) - -cc_library( - name = "simd_armv7a", - srcs = [ - "jchuff.h", - "jconfig.h", - "jdct.h", - "jerror.h", - "jinclude.h", - "jmorecfg.h", - "jpegint.h", - "jpeglib.h", - "jsimd.h", - "jsimddct.h", - "simd/jsimd.h", - "simd/arm/jsimd.c", - "simd/arm/jsimd_neon.S", - ], - copts = libjpegturbo_copts, - nocopts = libjpegturbo_nocopts, -) - -cc_library( - name = "simd_armv8a", - srcs = [ - "jchuff.h", - "jconfig.h", - "jdct.h", - "jerror.h", - "jinclude.h", - "jmorecfg.h", - "jpegint.h", - "jpeglib.h", - "jsimd.h", - "jsimddct.h", - "simd/jsimd.h", - "simd/arm64/jsimd.c", - "simd/arm64/jsimd_neon.S", - ], - copts = libjpegturbo_copts, - nocopts = libjpegturbo_nocopts, -) - -cc_library( - name = "simd_win_x86_64", - srcs = [ - "jchuff.h", - "jconfig.h", - "jconfigint.h", - "jdct.h", - "jerror.h", - "jinclude.h", - "jmorecfg.h", - "jpegint.h", - "jpeglib.h", - "jsimd.h", - "jsimddct.h", - "simd/jsimd.h", - "simd/x86_64/jsimd.c", - "simd/x86_64/jccolor-avx2.obj", - "simd/x86_64/jccolor-sse2.obj", - "simd/x86_64/jcgray-avx2.obj", - "simd/x86_64/jcgray-sse2.obj", - "simd/x86_64/jchuff-sse2.obj", - "simd/x86_64/jcphuff-sse2.obj", - "simd/x86_64/jcsample-avx2.obj", - "simd/x86_64/jcsample-sse2.obj", - "simd/x86_64/jdcolor-avx2.obj", - "simd/x86_64/jdcolor-sse2.obj", - "simd/x86_64/jdmerge-avx2.obj", - "simd/x86_64/jdmerge-sse2.obj", - "simd/x86_64/jdsample-avx2.obj", - "simd/x86_64/jdsample-sse2.obj", - "simd/x86_64/jfdctflt-sse.obj", - "simd/x86_64/jfdctfst-sse2.obj", - "simd/x86_64/jfdctint-avx2.obj", - "simd/x86_64/jfdctint-sse2.obj", - "simd/x86_64/jidctflt-sse2.obj", - "simd/x86_64/jidctfst-sse2.obj", - "simd/x86_64/jidctint-avx2.obj", - "simd/x86_64/jidctint-sse2.obj", - "simd/x86_64/jidctred-sse2.obj", - "simd/x86_64/jquantf-sse2.obj", - "simd/x86_64/jquanti-avx2.obj", - "simd/x86_64/jquanti-sse2.obj", - "simd/x86_64/jsimdcpu.obj", - ], - copts = libjpegturbo_copts, -) - -genrule( - name = "simd_win_x86_64_assemble", - srcs = [ - "jconfig.h", - "jconfigint.h", - "simd/x86_64/jccolext-avx2.asm", - "simd/x86_64/jccolext-sse2.asm", - "simd/x86_64/jccolor-avx2.asm", - "simd/x86_64/jccolor-sse2.asm", - "simd/x86_64/jcgray-avx2.asm", - "simd/x86_64/jcgray-sse2.asm", - "simd/x86_64/jcgryext-avx2.asm", - "simd/x86_64/jcgryext-sse2.asm", - "simd/x86_64/jchuff-sse2.asm", - "simd/x86_64/jcphuff-sse2.asm", - "simd/x86_64/jcsample-avx2.asm", - "simd/x86_64/jcsample-sse2.asm", - "simd/x86_64/jdcolext-avx2.asm", - "simd/x86_64/jdcolext-sse2.asm", - "simd/x86_64/jdcolor-avx2.asm", - "simd/x86_64/jdcolor-sse2.asm", - "simd/x86_64/jdmerge-avx2.asm", - "simd/x86_64/jdmerge-sse2.asm", - "simd/x86_64/jdmrgext-avx2.asm", - "simd/x86_64/jdmrgext-sse2.asm", - "simd/x86_64/jdsample-avx2.asm", - "simd/x86_64/jdsample-sse2.asm", - "simd/x86_64/jfdctflt-sse.asm", - "simd/x86_64/jfdctfst-sse2.asm", - "simd/x86_64/jfdctint-avx2.asm", - "simd/x86_64/jfdctint-sse2.asm", - "simd/x86_64/jidctflt-sse2.asm", - "simd/x86_64/jidctfst-sse2.asm", - "simd/x86_64/jidctint-avx2.asm", - "simd/x86_64/jidctint-sse2.asm", - "simd/x86_64/jidctred-sse2.asm", - "simd/x86_64/jquantf-sse2.asm", - "simd/x86_64/jquanti-avx2.asm", - "simd/x86_64/jquanti-sse2.asm", - "simd/x86_64/jsimdcpu.asm", - "simd/nasm/jcolsamp.inc", - "simd/nasm/jdct.inc", - "simd/nasm/jpeg_nbits_table.inc", - "simd/nasm/jsimdcfg.inc", - "simd/nasm/jsimdcfg.inc.h", - "simd/nasm/jsimdext.inc", - ], - outs = [ - "simd/x86_64/jccolor-avx2.obj", - "simd/x86_64/jccolor-sse2.obj", - "simd/x86_64/jcgray-avx2.obj", - "simd/x86_64/jcgray-sse2.obj", - "simd/x86_64/jchuff-sse2.obj", - "simd/x86_64/jcphuff-sse2.obj", - "simd/x86_64/jcsample-avx2.obj", - "simd/x86_64/jcsample-sse2.obj", - "simd/x86_64/jdcolor-avx2.obj", - "simd/x86_64/jdcolor-sse2.obj", - "simd/x86_64/jdmerge-avx2.obj", - "simd/x86_64/jdmerge-sse2.obj", - "simd/x86_64/jdsample-avx2.obj", - "simd/x86_64/jdsample-sse2.obj", - "simd/x86_64/jfdctflt-sse.obj", - "simd/x86_64/jfdctfst-sse2.obj", - "simd/x86_64/jfdctint-avx2.obj", - "simd/x86_64/jfdctint-sse2.obj", - "simd/x86_64/jidctflt-sse2.obj", - "simd/x86_64/jidctfst-sse2.obj", - "simd/x86_64/jidctint-avx2.obj", - "simd/x86_64/jidctint-sse2.obj", - "simd/x86_64/jidctred-sse2.obj", - "simd/x86_64/jquantf-sse2.obj", - "simd/x86_64/jquanti-avx2.obj", - "simd/x86_64/jquanti-sse2.obj", - "simd/x86_64/jsimdcpu.obj", - ], - cmd = "for out in $(OUTS); do\n" + - " $(location @nasm//:nasm) -fwin64 -DWIN64 -D__x86_64__" + - " -I $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/" + - " -I $$(dirname $(location simd/nasm/jdct.inc))/" + - " -I $$(dirname $(location simd/nasm/jdct.inc))/../../win/" + - " -o $$out" + - " $$(dirname $(location simd/x86_64/jccolext-sse2.asm))/$$(basename $${out%.obj}.asm)\n" + - "done", - tools = ["@nasm"], -) - -cc_library( - name = "simd_none", - srcs = [ - "jchuff.h", - "jconfig.h", - "jdct.h", - "jerror.h", - "jinclude.h", - "jmorecfg.h", - "jpegint.h", - "jpeglib.h", - "jsimd.h", - "jsimd_none.c", - "jsimddct.h", - ], - copts = libjpegturbo_copts, - nocopts = libjpegturbo_nocopts, -) - -template_rule( - name = "jconfig_win", - src = "win/jconfig.h.in", - out = "jconfig_win.h", - substitutions = { - "@JPEG_LIB_VERSION@": "62", - "@VERSION@": "2.0.0", - "@LIBJPEG_TURBO_VERSION_NUMBER@": "2000000", - "@BITS_IN_JSAMPLE@": "8", - "#cmakedefine C_ARITH_CODING_SUPPORTED": "#define C_ARITH_CODING_SUPPORTED", - "#cmakedefine D_ARITH_CODING_SUPPORTED": "#define D_ARITH_CODING_SUPPORTED", - "#cmakedefine MEM_SRCDST_SUPPORTED": "#define MEM_SRCDST_SUPPORTED", - "#cmakedefine WITH_SIMD": "", - }, -) - -JCONFIG_NOWIN_COMMON_SUBSTITUTIONS = { - "@JPEG_LIB_VERSION@": "62", - "@VERSION@": "2.0.0", - "@LIBJPEG_TURBO_VERSION_NUMBER@": "2000000", - "#cmakedefine C_ARITH_CODING_SUPPORTED": "#define C_ARITH_CODING_SUPPORTED", - "#cmakedefine D_ARITH_CODING_SUPPORTED": "#define D_ARITH_CODING_SUPPORTED", - "#cmakedefine MEM_SRCDST_SUPPORTED": "#define MEM_SRCDST_SUPPORTED", - "@BITS_IN_JSAMPLE@": "8", - "#cmakedefine HAVE_LOCALE_H": "#define HAVE_LOCALE_H 1", - "#cmakedefine HAVE_STDDEF_H": "#define HAVE_STDDEF_H 1", - "#cmakedefine HAVE_STDLIB_H": "#define HAVE_STDLIB_H 1", - "#cmakedefine NEED_SYS_TYPES_H": "#define NEED_SYS_TYPES_H", - "#cmakedefine NEED_BSD_STRINGS": "", - "#cmakedefine HAVE_UNSIGNED_CHAR": "#define HAVE_UNSIGNED_CHAR 1", - "#cmakedefine HAVE_UNSIGNED_SHORT": "#define HAVE_UNSIGNED_SHORT 1", - "#cmakedefine INCOMPLETE_TYPES_BROKEN": "", - "#cmakedefine RIGHT_SHIFT_IS_UNSIGNED": "", - "#cmakedefine __CHAR_UNSIGNED__": "", - "#undef const": "", - "#undef size_t": "", -} - -JCONFIG_NOWIN_SIMD_SUBSTITUTIONS = { - "#cmakedefine WITH_SIMD": "#define WITH_SIMD", -} - -JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS = { - "#cmakedefine WITH_SIMD": "", -} - -JCONFIG_NOWIN_SIMD_SUBSTITUTIONS.update(JCONFIG_NOWIN_COMMON_SUBSTITUTIONS) - -JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS.update(JCONFIG_NOWIN_COMMON_SUBSTITUTIONS) - -template_rule( - name = "jconfig_nowin_nosimd", - src = "jconfig.h.in", - out = "jconfig_nowin_nosimd.h", - substitutions = JCONFIG_NOWIN_NOSIMD_SUBSTITUTIONS, -) - -template_rule( - name = "jconfig_nowin_simd", - src = "jconfig.h.in", - out = "jconfig_nowin_simd.h", - substitutions = JCONFIG_NOWIN_SIMD_SUBSTITUTIONS, -) - -JCONFIGINT_COMMON_SUBSTITUTIONS = { - "@BUILD@": "20180831", - "@VERSION@": "2.0.0", - "@CMAKE_PROJECT_NAME@": "libjpeg-turbo", - "#undef inline": "", - "#cmakedefine HAVE_INTRIN_H": "", -} - -JCONFIGINT_NOWIN_SUBSTITUTIONS = { - "#cmakedefine HAVE_BUILTIN_CTZL": "#define HAVE_BUILTIN_CTZL", - "@INLINE@": "inline __attribute__((always_inline))", - "#define SIZEOF_SIZE_T @SIZE_T@": "#if (__WORDSIZE==64 && !defined(__native_client__))\n" + - "#define SIZEOF_SIZE_T 8\n" + - "#else\n" + - "#define SIZEOF_SIZE_T 4\n" + - "#endif\n", -} - -JCONFIGINT_WIN_SUBSTITUTIONS = { - "#cmakedefine HAVE_BUILTIN_CTZL": "", - "#define INLINE @INLINE@": "#if defined(__GNUC__)\n" + - "#define INLINE inline __attribute__((always_inline))\n" + - "#elif defined(_MSC_VER)\n" + - "#define INLINE __forceinline\n" + - "#else\n" + - "#define INLINE\n" + - "#endif\n", - "#define SIZEOF_SIZE_T @SIZE_T@": "#if (__WORDSIZE==64)\n" + - "#define SIZEOF_SIZE_T 8\n" + - "#else\n" + - "#define SIZEOF_SIZE_T 4\n" + - "#endif\n", -} - -JCONFIGINT_NOWIN_SUBSTITUTIONS.update(JCONFIGINT_COMMON_SUBSTITUTIONS) -JCONFIGINT_WIN_SUBSTITUTIONS.update(JCONFIGINT_COMMON_SUBSTITUTIONS) - -template_rule( - name = "jconfigint_nowin", - src = "jconfigint.h.in", - out = "jconfigint_nowin.h", - substitutions = JCONFIGINT_NOWIN_SUBSTITUTIONS, -) - -template_rule( - name = "jconfigint_win", - src = "jconfigint.h.in", - out = "jconfigint_win.h", - substitutions = JCONFIGINT_WIN_SUBSTITUTIONS, -) - -genrule( - name = "configure", - srcs = [ - "jconfig_win.h", - "jconfig_nowin_nosimd.h", - "jconfig_nowin_simd.h", - ], - outs = ["jconfig.h"], - cmd = select({ - ":windows": "cp $(location jconfig_win.h) $@", - ":k8": "cp $(location jconfig_nowin_simd.h) $@", - ":armeabi-v7a": "cp $(location jconfig_nowin_simd.h) $@", - ":arm64-v8a": "cp $(location jconfig_nowin_simd.h) $@", - ":linux_ppc64le": "cp $(location jconfig_nowin_simd.h) $@", - "//conditions:default": "cp $(location jconfig_nowin_nosimd.h) $@", - }), -) - -genrule( - name = "configure_internal", - srcs = [ - "jconfigint_win.h", - "jconfigint_nowin.h", - ], - outs = ["jconfigint.h"], - cmd = select({ - ":windows": "cp $(location jconfigint_win.h) $@", - "//conditions:default": "cp $(location jconfigint_nowin.h) $@", - }), -) - -# jiminy cricket the way this file is generated is completely outrageous -genrule( - name = "configure_simd", - outs = ["simd/jsimdcfg.inc"], - cmd = "cat <<'EOF' >$@\n" + - "%define DCTSIZE 8\n" + - "%define DCTSIZE2 64\n" + - "%define RGB_RED 0\n" + - "%define RGB_GREEN 1\n" + - "%define RGB_BLUE 2\n" + - "%define RGB_PIXELSIZE 3\n" + - "%define EXT_RGB_RED 0\n" + - "%define EXT_RGB_GREEN 1\n" + - "%define EXT_RGB_BLUE 2\n" + - "%define EXT_RGB_PIXELSIZE 3\n" + - "%define EXT_RGBX_RED 0\n" + - "%define EXT_RGBX_GREEN 1\n" + - "%define EXT_RGBX_BLUE 2\n" + - "%define EXT_RGBX_PIXELSIZE 4\n" + - "%define EXT_BGR_RED 2\n" + - "%define EXT_BGR_GREEN 1\n" + - "%define EXT_BGR_BLUE 0\n" + - "%define EXT_BGR_PIXELSIZE 3\n" + - "%define EXT_BGRX_RED 2\n" + - "%define EXT_BGRX_GREEN 1\n" + - "%define EXT_BGRX_BLUE 0\n" + - "%define EXT_BGRX_PIXELSIZE 4\n" + - "%define EXT_XBGR_RED 3\n" + - "%define EXT_XBGR_GREEN 2\n" + - "%define EXT_XBGR_BLUE 1\n" + - "%define EXT_XBGR_PIXELSIZE 4\n" + - "%define EXT_XRGB_RED 1\n" + - "%define EXT_XRGB_GREEN 2\n" + - "%define EXT_XRGB_BLUE 3\n" + - "%define EXT_XRGB_PIXELSIZE 4\n" + - "%define RGBX_FILLER_0XFF 1\n" + - "%define JSAMPLE byte ; unsigned char\n" + - "%define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)\n" + - "%define CENTERJSAMPLE 128\n" + - "%define JCOEF word ; short\n" + - "%define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)\n" + - "%define JDIMENSION dword ; unsigned int\n" + - "%define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)\n" + - "%define JSAMPROW POINTER ; JSAMPLE * (jpeglib.h)\n" + - "%define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)\n" + - "%define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)\n" + - "%define JCOEFPTR POINTER ; JCOEF * (jpeglib.h)\n" + - "%define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)\n" + - "%define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)\n" + - "%define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)\n" + - "%define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)\n" + - "%define DCTELEM word ; short\n" + - "%define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)\n" + - "%define float FP32 ; float\n" + - "%define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(float)\n" + - "%define ISLOW_MULT_TYPE word ; must be short\n" + - "%define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)\n" + - "%define IFAST_MULT_TYPE word ; must be short\n" + - "%define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)\n" + - "%define IFAST_SCALE_BITS 2 ; fractional bits in scale factors\n" + - "%define FLOAT_MULT_TYPE FP32 ; must be float\n" + - "%define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)\n" + - "%define JSIMD_NONE 0x00\n" + - "%define JSIMD_MMX 0x01\n" + - "%define JSIMD_3DNOW 0x02\n" + - "%define JSIMD_SSE 0x04\n" + - "%define JSIMD_SSE2 0x08\n" + - "EOF", -) - -config_setting( - name = "k8", - values = {"cpu": "k8"}, -) - -config_setting( - name = "android", - values = {"crosstool_top": "//external:android/crosstool"}, -) - -config_setting( - name = "armeabi-v7a", - values = {"cpu": "armeabi-v7a"}, -) - -config_setting( - name = "arm64-v8a", - values = {"cpu": "arm64-v8a"}, -) - -config_setting( - name = "windows", - values = {"cpu": "x64_windows"}, -) - -config_setting( - name = "linux_ppc64le", - values = {"cpu": "ppc"}, -) diff --git a/third_party/jpeg/jpeg_helpers.BUILD.bazel b/third_party/jpeg/jpeg_helpers.BUILD.bazel new file mode 100644 index 0000000000..5b01f6e3e4 --- /dev/null +++ b/third_party/jpeg/jpeg_helpers.BUILD.bazel @@ -0,0 +1 @@ +licenses(["notice"]) diff --git a/third_party/jpeg/workspace.bzl b/third_party/jpeg/workspace.bzl new file mode 100644 index 0000000000..4b517240ec --- /dev/null +++ b/third_party/jpeg/workspace.bzl @@ -0,0 +1,17 @@ +"""loads the jpeg library, used by TF.""" + +load("//third_party:repo.bzl", "third_party_http_archive") + +def repo(): + third_party_http_archive( + name = "jpeg", + urls = [ + "https://mirror.bazel.build/github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.0.tar.gz", + "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.0.tar.gz", + ], + sha256 = "f892fff427ab3adffc289363eac26d197ce3ccacefe5f5822377348a8166069b", + strip_prefix = "libjpeg-turbo-2.0.0", + build_file = "//third_party/jpeg:BUILD.bazel", + # build_file = clean_dep("//third_party/jpeg:jpeg.BUILD"), + system_build_file = "//third_party/jpeg:BUILD.system", + ) diff --git a/third_party/systemlibs/jpeg.BUILD b/third_party/systemlibs/jpeg.BUILD deleted file mode 100644 index f4f52da9bd..0000000000 --- a/third_party/systemlibs/jpeg.BUILD +++ /dev/null @@ -1,12 +0,0 @@ -licenses(["notice"]) # custom notice-style license, see LICENSE.md - -filegroup( - name = "LICENSE.md", - visibility = ["//visibility:public"], -) - -cc_library( - name = "jpeg", - linkopts = ["-ljpeg"], - visibility = ["//visibility:public"], -) -- cgit v1.2.3