about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2025-01-30 19:33:27 +0100
committerbptato <nincsnevem662@gmail.com>2025-01-30 19:45:57 +0100
commitfa8fe9ed2b350a48422fe223a17b6218fe752b32 (patch)
tree781a6bb2627f3f0814b7cbc4544a19ed66a1659f
parentf8c0d603c654e0217dc3078f4316913c4266bd83 (diff)
downloadchawan-fa8fe9ed2b350a48422fe223a17b6218fe752b32.tar.gz
img: remove intermediate C files
Nim doesn't consider included files when recompiling C files, which
would sometimes lead to fixes not being compiled in without a clean
build.
-rw-r--r--Makefile12
-rw-r--r--adapter/img/canvas.c5
-rw-r--r--adapter/img/canvas.nim10
-rw-r--r--adapter/img/jebp.c4
-rw-r--r--adapter/img/jebp.nim11
-rw-r--r--adapter/img/nanosvg.c5
-rw-r--r--adapter/img/nanosvg.nim13
-rw-r--r--adapter/img/resize.nim7
-rw-r--r--adapter/img/stb_image.c17
-rw-r--r--adapter/img/stb_image_resize.c2
-rw-r--r--adapter/img/stbi.nim25
11 files changed, 56 insertions, 55 deletions
diff --git a/Makefile b/Makefile
index e406f057..c16424ab 100644
--- a/Makefile
+++ b/Makefile
@@ -123,15 +123,15 @@ $(OUTDIR_CGI_BIN)/file: $(twtstr)
 $(OUTDIR_CGI_BIN)/ftp: $(lcgi)
 $(OUTDIR_CGI_BIN)/sftp: $(lcgi) $(twtstr)
 $(OUTDIR_CGI_BIN)/gemini: $(lcgi_ssl)
-$(OUTDIR_CGI_BIN)/stbi: adapter/img/stbi.nim adapter/img/stb_image.c \
-		adapter/img/stb_image.h $(sandbox) $(dynstream)
-$(OUTDIR_CGI_BIN)/jebp: adapter/img/jebp.c adapter/img/jebp.h $(sandbox)
+$(OUTDIR_CGI_BIN)/stbi: adapter/img/stbi.nim adapter/img/stb_image.h \
+	adapter/img/stb_image_write.h $(sandbox) $(dynstream)
+$(OUTDIR_CGI_BIN)/jebp: adapter/img/jebp.h $(sandbox)
 $(OUTDIR_CGI_BIN)/sixel: src/types/color.nim $(sandbox) $(twtstr) $(dynstream)
 $(OUTDIR_CGI_BIN)/canvas: src/types/canvastypes.nim src/types/path.nim \
-	src/io/bufreader.nim src/types/color.nim $(sandbox) $(dynstream) $(twtstr)
-$(OUTDIR_CGI_BIN)/resize: adapter/img/stb_image_resize.h adapter/img/stb_image_resize.c \
+	src/io/bufreader.nim src/types/color.nim adapter/img/stb_image.h \
 	$(sandbox) $(dynstream) $(twtstr)
-$(OUTDIR_CGI_BIN)/nanosvg: adapter/img/nanosvg.nim adapter/img/nanosvg.c adapter/img/nanosvg.h
+$(OUTDIR_CGI_BIN)/resize: adapter/img/stb_image_resize.h $(sandbox) $(dynstream) $(twtstr)
+$(OUTDIR_CGI_BIN)/nanosvg: adapter/img/nanosvg.nim adapter/img/nanosvg.h
 $(OUTDIR_LIBEXEC)/urlenc: $(twtstr)
 $(OUTDIR_LIBEXEC)/nc: $(lcgi)
 $(OUTDIR_LIBEXEC)/gopher2html: $(twtstr)
diff --git a/adapter/img/canvas.c b/adapter/img/canvas.c
deleted file mode 100644
index 9e386ca1..00000000
--- a/adapter/img/canvas.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#define STBI_ONLY_PNG
-#define STBI_NO_STDIO
-#define STBI_NO_LINEAR
-#define STB_IMAGE_IMPLEMENTATION
-#include "stb_image.h"
diff --git a/adapter/img/canvas.nim b/adapter/img/canvas.nim
index c69c343b..1d9c0eb6 100644
--- a/adapter/img/canvas.nim
+++ b/adapter/img/canvas.nim
@@ -19,11 +19,15 @@ import types/color
 import utils/sandbox
 import utils/twtstr
 
-{.compile: "canvas.c".}
-
 {.passc: "-I" & currentSourcePath().parentDir().}
 
-{.push header: "stb_image.h".}
+{.push header: """
+#define STBI_ONLY_PNG
+#define STBI_NO_STDIO
+#define STBI_NO_LINEAR
+#define STB_IMAGE_IMPLEMENTATION
+#include "stb_image.h"
+""".}
 proc stbi_load_from_memory(buffer: ptr uint8; len: cint; x, y, comp: ptr cint;
   req_comp: cint): ptr uint8
 proc stbi_image_free(retval_from_stbi_load: pointer)
diff --git a/adapter/img/jebp.c b/adapter/img/jebp.c
deleted file mode 100644
index e48ed43f..00000000
--- a/adapter/img/jebp.c
+++ /dev/null
@@ -1,4 +0,0 @@
-/* #define JEBP_NO_SIMD */
-/* #define JEBP_NO_STDIO */
-#define JEBP_IMPLEMENTATION
-#include "jebp.h"
diff --git a/adapter/img/jebp.nim b/adapter/img/jebp.nim
index d05b8efb..3ed016d9 100644
--- a/adapter/img/jebp.nim
+++ b/adapter/img/jebp.nim
@@ -6,8 +6,6 @@ import std/strutils
 import utils/sandbox
 import utils/twtstr
 
-{.compile: "jebp.c".}
-
 when sizeof(cint) < 4:
   type jebp_int = clong
 else:
@@ -18,7 +16,12 @@ else:
 const STDIN_FILENO = 0
 const STDOUT_FILENO = 1
 
-{.push header: "jebp.h".}
+{.push header: """
+#define JEBP_NO_STDIO
+/* #define JEBP_NO_SIMD */
+#define JEBP_IMPLEMENTATION
+#include "jebp.h"
+""".}
 type
   jebp_io_callbacks {.importc.} = object
     read: proc(data: pointer; size: csize_t; user: pointer): csize_t {.cdecl.}
@@ -46,7 +49,7 @@ proc jebp_read_size_from_callbacks(image: ptr jebp_image_t;
 proc jebp_error_string(err: jebp_error_t): cstring {.importc.}
 
 proc jebp_free_image(image: ptr jebp_image_t) {.importc.}
-{.pop.}
+{.pop.} # jebp.h
 
 proc myRead(data: pointer; size: csize_t; user: pointer): csize_t {.cdecl.} =
   var n = csize_t(0)
diff --git a/adapter/img/nanosvg.c b/adapter/img/nanosvg.c
deleted file mode 100644
index 9eab45c6..00000000
--- a/adapter/img/nanosvg.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#define NANOSVG_IMPLEMENTATION
-#define NANOSVG_ALL_COLOR_KEYWORDS
-#include "nanosvg.h"
-#define NANOSVGRAST_IMPLEMENTATION
-#include "nanosvgrast.h"
diff --git a/adapter/img/nanosvg.nim b/adapter/img/nanosvg.nim
index af554c5e..0c90ff4c 100644
--- a/adapter/img/nanosvg.nim
+++ b/adapter/img/nanosvg.nim
@@ -6,9 +6,13 @@ import io/dynstream
 import utils/sandbox
 import utils/twtstr
 
-{.compile("nanosvg.c", "-O3").}
+{.passc: "-I" & currentSourcePath().parentDir().}
 
-{.push header: "nanosvg.h".}
+{.push header: """
+#define NANOSVG_IMPLEMENTATION
+#define NANOSVG_ALL_COLOR_KEYWORDS
+#include "nanosvg.h"
+""".}
 type
   NSVGimage {.importc.} = object
     width: cfloat
@@ -24,7 +28,10 @@ proc nsvgDelete(image: ptr NSVGimage)
 
 {.pop.} # nanosvg.h
 
-{.push header: "nanosvgrast.h".}
+{.push header: """
+#define NANOSVGRAST_IMPLEMENTATION
+#include "nanosvgrast.h"
+""".}
 type NSVGrasterizer {.incompleteStruct, importc.} = object
 
 {.push importc, cdecl.}
diff --git a/adapter/img/resize.nim b/adapter/img/resize.nim
index 74ba2186..66b4d256 100644
--- a/adapter/img/resize.nim
+++ b/adapter/img/resize.nim
@@ -7,9 +7,12 @@ import io/dynstream
 import utils/sandbox
 import utils/twtstr
 
-{.compile("stb_image_resize.c", "-O3").}
+{.passc: "-I" & currentSourcePath().parentDir().}
 
-{.push header: "stb_image_resize.h".}
+{.push header: """
+#define STB_IMAGE_RESIZE_IMPLEMENTATION
+#include "stb_image_resize.h"
+""".}
 proc stbir_resize_uint8_srgb(input_pixels: ptr uint8;
   input_w, input_h, input_stride_in_bytes: cint; output_pixels: ptr uint8;
   output_w, output_h, output_stride_in_bytes, num_channels, alpha_channel,
diff --git a/adapter/img/stb_image.c b/adapter/img/stb_image.c
deleted file mode 100644
index b5afab43..00000000
--- a/adapter/img/stb_image.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#define STB_IMAGE_IMPLEMENTATION
-#define STBI_NO_LINEAR
-#define STBI_NO_STDIO
-/* #define STBI_NO_JPEG
- * #define STBI_NO_PNG
- * #define STBI_NO_BMP
- */
-#define STBI_NO_PSD
-#define STBI_NO_TGA
-/* #define STBI_NO_GIF */
-#define STBI_NO_HDR
-#define STBI_NO_PIC
-#define STBI_NO_PNM /* (.ppm and .pgm) */
-#include "stb_image.h"
-#define STB_IMAGE_WRITE_IMPLEMENTATION
-#define STIBW_NO_STDIO
-#include "stb_image_write.h"
diff --git a/adapter/img/stb_image_resize.c b/adapter/img/stb_image_resize.c
deleted file mode 100644
index b2d47755..00000000
--- a/adapter/img/stb_image_resize.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define STB_IMAGE_RESIZE_IMPLEMENTATION
-#include "stb_image_resize.h"
diff --git a/adapter/img/stbi.nim b/adapter/img/stbi.nim
index dca1b808..64485d06 100644
--- a/adapter/img/stbi.nim
+++ b/adapter/img/stbi.nim
@@ -10,9 +10,22 @@ import utils/twtstr
 {.passc: "-fno-strict-aliasing".}
 {.passl: "-fno-strict-aliasing".}
 
-{.compile("stb_image.c", "-O3").}
-
-{.push header: "stb_image.h".}
+{.push header: """
+#define STB_IMAGE_IMPLEMENTATION
+#define STBI_NO_LINEAR
+#define STBI_NO_STDIO
+/* #define STBI_NO_JPEG
+ * #define STBI_NO_PNG
+ * #define STBI_NO_BMP
+ */
+#define STBI_NO_PSD
+#define STBI_NO_TGA
+/* #define STBI_NO_GIF */
+#define STBI_NO_HDR
+#define STBI_NO_PIC
+#define STBI_NO_PNM /* (.ppm and .pgm) */
+#include "stb_image.h"
+""".}
 
 type stbi_io_callbacks {.importc.} = object
   read: proc(user: pointer; data: ptr char; size: cint): cint {.cdecl.}
@@ -64,7 +77,11 @@ proc myEof(user: pointer): cint {.cdecl.} =
 
 type stbi_write_func = proc(context, data: pointer; size: cint) {.cdecl.}
 
-{.push header: "stb_image_write.h".}
+{.push header: """
+#define STB_IMAGE_WRITE_IMPLEMENTATION
+#define STIBW_NO_STDIO
+#include "stb_image_write.h"
+""".}
 proc stbi_write_png_to_func(fun: stbi_write_func; context: pointer;
   w, h, comp: cint; data: pointer; stride_in_bytes: cint) {.importc.}
 proc stbi_write_bmp_to_func(fun: stbi_write_func; context: pointer;