FROM emscripten/emsdk:2.0.30 AS emsdk
# Cache a bunch of slow linker stuff up front in a dedicated layer
RUN bash -c 'em++  -gsource-map -s ALLOW_MEMORY_GROWTH=1 -s ASYNCIFY=1 -s DEMANGLE_SUPPORT=1 -s ASSERTIONS=2  --cpuprofiler --memoryprofiler --emrun -s WASM=1 -s USE_SDL=2 -s USE_SDL_IMAGE=2 -s USE_SDL_MIXER=2 -s USE_SDL_IMAGE=2 -s SDL2_IMAGE_FORMATS=["png"] -o /tmp/out.js  -fsanitize=address,undefined -x c++ /dev/stdin <<< "int main() {}"'

FROM emsdk AS embuild
WORKDIR /embuild
COPY . .

WORKDIR /embuild/build
RUN tar cvfz /tmp/source.tar.gz /embuild/* && mv /tmp/source.tar.gz .
RUN emcmake cmake .. -DCMAKE_BUILD_TYPE=Release
RUN emmake make

FROM nginx AS server
WORKDIR /usr/share/nginx/html/
COPY --from=embuild /embuild/build/index* ./
COPY --from=embuild /embuild/build/source.tar.gz ./
COPY favicon.ico ./
COPY --from=embuild /embuild/assets/ ./assets/

# Debug only
#COPY --from=embuild /embuild/src/ ./src/
