Skip to content

Commit 310f65e

Browse files
authored
Add libjpeg-turbo (#1230)
1 parent 5d41286 commit 310f65e

File tree

6 files changed

+251
-0
lines changed

6 files changed

+251
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module(
2+
name = "libjpeg_turbo",
3+
version = "2.1.91",
4+
compatibility_level = 1,
5+
)
6+
7+
bazel_dep(name = "bazel_skylib", version = "1.5.0")
8+
bazel_dep(name = "platforms", version = "0.0.8")
Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
--- /dev/null
2+
+++ BUILD.bazel
3+
@@ -0,0 +1,190 @@
4+
+load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
5+
+
6+
+SUBSTITUTIONS = {
7+
+ "@BUILD@": "20230208",
8+
+ "@CMAKE_PROJECT_NAME@": "libjpeg-turbo",
9+
+ "@COPYRIGHT_YEAR@": "2023",
10+
+ "@INLINE@": "LJT_INLINE",
11+
+ "@JPEG_LIB_VERSION@": "62",
12+
+ "@LIBJPEG_TURBO_VERSION_NUMBER@": "2001091",
13+
+ "@SIZE_T@": "8",
14+
+ "@THREAD_LOCAL@": "__thread",
15+
+ "@VERSION@": "2.1.91",
16+
+}
17+
+
18+
+YES_DEFINES = [
19+
+ "C_ARITH_CODING_SUPPORTED",
20+
+ "D_ARITH_CODING_SUPPORTED",
21+
+ "HAVE_BUILTIN_CTZL",
22+
+ "MEM_SRCDST_SUPPORTED",
23+
+]
24+
+
25+
+NO_DEFINES = [
26+
+ "WITH_SIMD",
27+
+ "RIGHT_SHIFT_IS_UNSIGNED",
28+
+ "HAVE_INTRIN_H",
29+
+]
30+
+
31+
+SUBSTITUTIONS.update({
32+
+ "#cmakedefine " + key: "#define " + key
33+
+ for key in YES_DEFINES
34+
+})
35+
+
36+
+SUBSTITUTIONS.update({
37+
+ "#cmakedefine " + key: "// #define " + key
38+
+ for key in NO_DEFINES
39+
+})
40+
+
41+
+[
42+
+ expand_template(
43+
+ name = "expand_" + src,
44+
+ out = src,
45+
+ substitutions = SUBSTITUTIONS,
46+
+ template = src + ".in",
47+
+ visibility = ["//visibility:public"],
48+
+ )
49+
+ for src in [
50+
+ "jconfig.h",
51+
+ "jconfigint.h",
52+
+ "jversion.h",
53+
+ ]
54+
+]
55+
+
56+
+JPEG16_SOURCES = [
57+
+ "jccolor.c",
58+
+ "jcdiffct.c",
59+
+ "jclossls.c",
60+
+ "jcmainct.c",
61+
+ "jcprepct.c",
62+
+ "jcsample.c",
63+
+ "jdcolor.c",
64+
+ "jddiffct.c",
65+
+ "jdlossls.c",
66+
+ "jdmainct.c",
67+
+ "jdmerge.c",
68+
+ "jdpostct.c",
69+
+ "jdsample.c",
70+
+ "jquant1.c",
71+
+ "jquant2.c",
72+
+ "jutils.c",
73+
+]
74+
+
75+
+JPEG12_SOURCES = JPEG16_SOURCES + [
76+
+ "jccoefct.c",
77+
+ "jcdctmgr.c",
78+
+ "jdcoefct.c",
79+
+ "jddctmgr.c",
80+
+ "jfdctfst.c",
81+
+ "jfdctint.c",
82+
+ "jidctflt.c",
83+
+ "jidctfst.c",
84+
+ "jidctint.c",
85+
+ "jidctred.c",
86+
+]
87+
+
88+
+JPEG_SOURCES = JPEG12_SOURCES + [
89+
+ "jaricom.c",
90+
+ "jcapimin.c",
91+
+ "jcapistd.c",
92+
+ "jcarith.c",
93+
+ "jchuff.c",
94+
+ "jcicc.c",
95+
+ "jcinit.c",
96+
+ "jclhuff.c",
97+
+ "jcmarker.c",
98+
+ "jcmaster.c",
99+
+ "jcomapi.c",
100+
+ "jcparam.c",
101+
+ "jcphuff.c",
102+
+ "jdapimin.c",
103+
+ "jdapistd.c",
104+
+ "jdarith.c",
105+
+ "jdatadst.c",
106+
+ "jdatasrc.c",
107+
+ "jdhuff.c",
108+
+ "jdicc.c",
109+
+ "jdinput.c",
110+
+ "jdlhuff.c",
111+
+ "jdmarker.c",
112+
+ "jdmaster.c",
113+
+ "jdphuff.c",
114+
+ "jdtrans.c",
115+
+ "jerror.c",
116+
+ "jfdctflt.c",
117+
+ "jmemmgr.c",
118+
+ "jmemnobs.c",
119+
+]
120+
+
121+
+JPEG_HEADERS = [
122+
+ "jccolext.c",
123+
+ "jchuff.h",
124+
+ "jcmaster.h",
125+
+ "jconfig.h",
126+
+ "jconfigint.h",
127+
+ "jdcoefct.h",
128+
+ "jdcol565.c",
129+
+ "jdcolext.c",
130+
+ "jdct.h",
131+
+ "jdhuff.h",
132+
+ "jdmainct.h",
133+
+ "jdmaster.h",
134+
+ "jdmerge.h",
135+
+ "jdmrg565.c",
136+
+ "jdmrgext.c",
137+
+ "jdsample.h",
138+
+ "jerror.h",
139+
+ "jinclude.h",
140+
+ "jlossls.h",
141+
+ "jmemsys.h",
142+
+ "jmorecfg.h",
143+
+ "jpeg_nbits_table.h",
144+
+ "jpegapicomp.h",
145+
+ "jpegint.h",
146+
+ "jpeglib.h",
147+
+ "jsamplecomp.h",
148+
+ "jsimd.h",
149+
+ "jsimddct.h",
150+
+ "jstdhuff.c",
151+
+ "jversion.h",
152+
+]
153+
+
154+
+JPEG_DEFINES = select({
155+
+ "@platforms//os:windows": ["LJT_INLINE=__inline"],
156+
+ "//conditions:default": ["LJT_INLINE=__inline"],
157+
+})
158+
+
159+
+cc_library(
160+
+ name = "jpeg16",
161+
+ srcs = JPEG16_SOURCES,
162+
+ hdrs = JPEG_HEADERS,
163+
+ defines = JPEG_DEFINES,
164+
+ local_defines = ["BITS_IN_JSAMPLE=16"],
165+
+ visibility = ["//visibility:public"],
166+
+)
167+
+
168+
+cc_library(
169+
+ name = "jpeg12",
170+
+ srcs = JPEG12_SOURCES,
171+
+ hdrs = JPEG_HEADERS,
172+
+ defines = JPEG_DEFINES,
173+
+ local_defines = ["BITS_IN_JSAMPLE=12"],
174+
+ visibility = ["//visibility:public"],
175+
+)
176+
+
177+
+cc_library(
178+
+ name = "jpeg",
179+
+ srcs = JPEG_SOURCES,
180+
+ hdrs = JPEG_HEADERS,
181+
+ defines = JPEG_DEFINES,
182+
+ includes = ["."],
183+
+ visibility = ["//visibility:public"],
184+
+ deps = [
185+
+ ":jpeg12",
186+
+ ":jpeg16",
187+
+ ],
188+
+)
189+
+
190+
+exports_files([
191+
+ "jmorecfg.h",
192+
+ "jpeglib.h",
193+
+])
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--- MODULE.bazel
2+
+++ MODULE.bazel
3+
@@ -0,0 +1,8 @@
4+
+module(
5+
+ name = "libjpeg_turbo",
6+
+ version = "2.1.91",
7+
+ compatibility_level = 1,
8+
+)
9+
+
10+
+bazel_dep(name = "bazel_skylib", version = "1.5.0")
11+
+bazel_dep(name = "platforms", version = "0.0.8")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
matrix:
2+
platform:
3+
- debian10
4+
- ubuntu2004
5+
- macos
6+
- windows
7+
tasks:
8+
verify_targets:
9+
name: Verify build targets
10+
platform: ${{ platform }}
11+
build_targets:
12+
- '@libjpeg_turbo//:jpeg'
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"url": "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/2.1.91/libjpeg-turbo-2.1.91.tar.gz",
3+
"integrity": "sha256-KJcbr3+KK31CUJPhzfU6gOvE1wk3QQjReX0pK5PtOrQ=",
4+
"strip_prefix": "libjpeg-turbo-2.1.91",
5+
"patches": {
6+
"add_build_file.patch": "sha256-ZF3xJQ/EJuvxDj5PS+Vem106de0rocYdNi03Wec+ROo=",
7+
"module_dot_bazel.patch": "sha256-Y9gV0tN7LHoOqCe3Qs9gvpc00Q2GAiJgX9gEDpH86WY="
8+
},
9+
"patch_strip": 0
10+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"homepage": "https://libjpeg-turbo.org/",
3+
"maintainers": [
4+
{
5+
"email": "[email protected]",
6+
"github": "eustas",
7+
"name": "Evgenii Kliuchnikov"
8+
}
9+
],
10+
"repository": [
11+
"github:libjpeg-turbo/libjpeg-turbo"
12+
],
13+
"versions": [
14+
"2.1.91"
15+
],
16+
"yanked_versions": {}
17+
}

0 commit comments

Comments
 (0)