diff markdown_converter/BUILD @ 186:8cf4ec5e2191 hg-web

Fixed merge conflict.
author MrJuneJune <me@mrjunejune.com>
date Fri, 23 Jan 2026 22:38:59 -0800
parents fed99fc04e12 8c74204fd362
children a2725419f988
line wrap: on
line diff
--- a/markdown_converter/BUILD	Wed Jan 21 19:32:08 2026 -0800
+++ b/markdown_converter/BUILD	Fri Jan 23 22:38:59 2026 -0800
@@ -1,7 +1,9 @@
 load("@rules_cc//cc:cc_library.bzl", "cc_library")
+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"],
+)