diff --git a/third_party/jpeg/BUILD.bazel b/third_party/jpeg/BUILD.bazel index 71cdf332b9f..cc17e06ff17 100644 --- a/third_party/jpeg/BUILD.bazel +++ b/third_party/jpeg/BUILD.bazel @@ -127,10 +127,8 @@ cc_library( visibility = ["//visibility:public"], deps = select({ ":k8": [":simd_x86_64"], - # TODO(b/188696518): use :simd_armv7a for 32bit ARM, and :simd_armv8a - # for 64bit ARM. - ":armeabi-v7a": [":simd_none"], - ":arm64-v8a": [":simd_none"], + ":armeabi-v7a": [":simd_armv7a"], + ":arm64-v8a": [":simd_armv8a"], ":linux_ppc64le": [":simd_altivec"], ":windows": [":simd_win_x86_64"], "//conditions:default": [":simd_none"], @@ -175,21 +173,24 @@ cc_library( copts = libjpegturbo_copts, ) +SRCS_SIMD_COMMON = [ + "jchuff.h", + "jconfig.h", + "jconfigint.h", + "jdct.h", + "jerror.h", + "jinclude.h", + "jmorecfg.h", + "jpegint.h", + "jpeglib.h", + "jsimddct.h", + "jsimd.h", + "simd/jsimd.h", +] + 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", @@ -218,7 +219,7 @@ cc_library( "simd/x86_64/jquanti-sse2.o", "simd/x86_64/jsimd.c", "simd/x86_64/jsimdcpu.o", - ], + ] + SRCS_SIMD_COMMON, copts = libjpegturbo_copts, linkstatic = 1, ) @@ -336,7 +337,6 @@ cc_library( ) SRCS_SIMD_ARM = [ - "simd/arm/align.h", "simd/arm/jccolor-neon.c", "simd/arm/jcgray-neon.c", "simd/arm/jcphuff-neon.c", @@ -352,57 +352,48 @@ SRCS_SIMD_ARM = [ "simd/arm/jquanti-neon.c", ] +# .c files in the following list are used like .h files in that they are +# "#include"-ed in the actual .c files. So, treat them like normal headers, and +# they *should not* be compiled into individual objects. +HDRS_SIMD_ARM = [ + "simd/arm/align.h", + "simd/arm/jchuff.h", + "simd/arm/jcgryext-neon.c", + "simd/arm/jdcolext-neon.c", + "simd/arm/jdmrgext-neon.c", +] + cc_library( name = "simd_armv7a", srcs = [ - "jconfig.h", - "jconfigint.h", - "jsimd.h", - "jsimddct.h", "simd/arm/aarch32/jsimd.c", "simd/arm/aarch32/jchuff-neon.c", - ] + SRCS_SIMD_ARM, + ] + SRCS_SIMD_COMMON + SRCS_SIMD_ARM, + hdrs = [ + "simd/arm/aarch32/jccolext-neon.c", + ] + HDRS_SIMD_ARM, copts = libjpegturbo_copts, - includes = [ - ".", - "../../", - ], + visibility = ["//visibility:private"], deps = [":neon-compat_hdr"], ) cc_library( name = "simd_armv8a", srcs = [ - "jconfig.h", - "jconfigint.h", - "jsimd.h", - "jsimddct.h", "simd/arm/aarch64/jsimd.c", "simd/arm/aarch64/jchuff-neon.c", - ] + SRCS_SIMD_ARM, + ] + SRCS_SIMD_COMMON + SRCS_SIMD_ARM, + hdrs = [ + "simd/arm/aarch64/jccolext-neon.c", + ] + HDRS_SIMD_ARM, copts = libjpegturbo_copts, - includes = [ - ".", - "../../", - ], + visibility = ["//visibility:private"], deps = [":neon-compat_hdr"], ) 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", @@ -431,7 +422,7 @@ cc_library( "simd/x86_64/jquanti-sse2.obj", "simd/x86_64/jsimd.c", "simd/x86_64/jsimdcpu.obj", - ], + ] + SRCS_SIMD_COMMON, copts = libjpegturbo_copts, )