diff markdown_converter/BUILD @ 185:dfdd66825396

Merged in keep alive changes and mrjunejune changes.
author MrJuneJune <me@mrjunejune.com>
date Fri, 23 Jan 2026 22:22:30 -0800
parents 8c74204fd362
children 8cf4ec5e2191
line wrap: on
line diff
--- a/markdown_converter/BUILD	Fri Jan 23 21:09:49 2026 -0800
+++ b/markdown_converter/BUILD	Fri Jan 23 22:22:30 2026 -0800
@@ -1,7 +1,9 @@
 load("@rules_cc//cc:cc_library.bzl", "cc_library")
-load("//gui_ze:gui_ze.bzl", "wasm_binary", "bun_run", "move_files_into_dir")
+load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
+load("//gui_ze:gui_ze.bzl", "bun_run", "move_files_into_dir")
+load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary")
 
-# JS only 
+# JS only
 filegroup(
   name = "markdown_to_html",
   srcs = glob([
@@ -18,10 +20,30 @@
   visibility = ["//visibility:public"],
 )
 
-# C implementation for native use
+# C implementation for native use (as library)
 cc_library(
   name = "markdown_to_html_c",
   srcs = ["markdown_to_html.c"],
   hdrs = [":markdown_to_html_hdrs"],
   visibility = ["//visibility:public"],
 )
+
+# WASM binary target (cc_binary required for wasm_cc_binary)
+# Note: linkopts are emscripten-specific, only apply during WASM build
+cc_binary(
+  name = "markdown_to_html_bin",
+  srcs = ["markdown_to_html.c", "markdown_to_html.h"],
+  linkopts = [
+    "--no-entry",  # No main() function
+    "-sALLOW_MEMORY_GROWTH",  # Allow memory to grow dynamically
+    "-sEXPORTED_FUNCTIONS=['_markdown_to_html','_markdown_free','_markdown_get_length','_wasm_alloc','_wasm_free']",
+    "-sEXPORTED_RUNTIME_METHODS=['cwrap','ccall','UTF8ToString','stringToUTF8','lengthBytesUTF8']",
+  ],
+  tags=["manual"],
+)
+
+wasm_cc_binary(
+  name = "markdown_to_html_wasm",
+  cc_target = ":markdown_to_html_bin",
+  visibility = ["//visibility:public"],
+)