From baae7dbc38ad4e131c107d9f0f638530ac250e2e Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Mon, 17 Nov 2025 10:02:56 -0500 Subject: wasm support! --- Dockerfile | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Dockerfile (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b14aa15 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,51 @@ +FROM debian:trixie + +# enable more components and update repos +RUN apt update -y + +# install libraries +RUN apt install -y \ + libasound2-dev \ + libpulse-dev \ + libwayland-dev \ + libxrandr-dev \ + libxinerama-dev \ + libxcursor-dev \ + libxi-dev \ + libxkbcommon-dev \ + libsdl2-dev \ + libclang-dev + +# Install build tools +RUN apt install -y \ + rustup \ + gcc \ + g++ \ + cmake \ + git \ + xz-utils + +# Install emscripten +RUN git clone https://github.com/emscripten-core/emsdk.git /emsdk +RUN /emsdk/emsdk install latest +RUN /emsdk/emsdk activate latest + +# add build user +RUN useradd -u 1000 -m builder -d /home/builder +USER builder + +# Install rust and toolchain +RUN rustup default stable +RUN rustup target add wasm32-unknown-emscripten + +# set emscripten env +ENV RUSTFLAGS="-C panic=unwind" +ENV EMCC_CFLAGS="-O3 -sUSE_GLFW=3 -sASSERTIONS=1 -sWASM=1 -sASYNCIFY -sGL_ENABLE_GET_PROC_ADDRESS=1 -sEXPORTED_RUNTIME_METHODS=HEAPF32,ccall,cwrap" +ENV EMSDK=/emsdk +ENV EMSDK_NODE=/emsdk/node/22.16.0_64bit/bin/node +ENV PATH="${EMSDK}/upstream/bin:${EMSDK}/upstream/emscripten:${EMSDK_NODE}:${PATH}" + +# build the code +VOLUME /data +WORKDIR /data +CMD ["cargo", "build", "--target", "wasm32-unknown-emscripten", "--release"] -- cgit v1.2.3-freya