90be6c154e
Change-Id: I0e6a74c02186c97e8f1ca676c3593c4729637654 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374216 Reviewed-by: Kevin Lubick <kjlubick@google.com>
75 lines
2.4 KiB
Docker
75 lines
2.4 KiB
Docker
# Dockerfile for building the WASM libraries used by jsfiddle.skia.org and debugger.skia.org
|
|
FROM gcr.io/skia-public/emsdk-base:prod as builder
|
|
|
|
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
|
git \
|
|
libfreetype6-dev
|
|
|
|
RUN cd /tmp \
|
|
&& git clone --depth 1 'https://chromium.googlesource.com/chromium/tools/depot_tools.git'
|
|
|
|
ENV PATH=${PATH}:/tmp/depot_tools
|
|
|
|
# Checkout Skia using fetch from depot_tools
|
|
RUN mkdir -p /tmp/skia \
|
|
&& cd /tmp/skia \
|
|
&& fetch skia
|
|
|
|
# Set fake identity for git rebase. See thread in
|
|
# https://skia-review.googlesource.com/c/buildbot/+/286537/5/docker/Dockerfile#46
|
|
RUN cd /tmp/skia/skia \
|
|
&& git config user.email "skia@skia.org" \
|
|
&& git config user.name "Skia"
|
|
|
|
# HASH must be specified.
|
|
ARG HASH
|
|
RUN if [ -z "${HASH}" ] ; then echo "HASH must be specified as a --build-arg"; exit 1; fi
|
|
|
|
RUN cd /tmp/skia/skia \
|
|
&& git fetch \
|
|
&& git reset --hard ${HASH}
|
|
|
|
# If patch ref is specified then update the ref to patch in a CL.
|
|
ARG PATCH_REF
|
|
RUN if [ ! -z "${PATCH_REF}" ] ; then cd /tmp/skia/skia \
|
|
&& git fetch https://skia.googlesource.com/skia ${PATCH_REF} \
|
|
&& git checkout FETCH_HEAD \
|
|
&& git rebase ${HASH}; fi
|
|
|
|
RUN cd /tmp/skia/skia \
|
|
&& gclient sync \
|
|
&& ./bin/fetch-gn
|
|
|
|
# PathKit should be in /tmp/skia/skia/out/pathkit/
|
|
RUN /tmp/skia/skia/modules/pathkit/compile.sh
|
|
|
|
# CanvasKit should be in /tmp/skia/skia/out/canvaskit_wasm
|
|
RUN /tmp/skia/skia/modules/canvaskit/compile.sh
|
|
|
|
# Debugger should be in /tmp/skia/skia/out/debugger_wasm
|
|
RUN /tmp/skia/skia/experimental/wasm-skp-debugger/compile.sh
|
|
|
|
RUN cd /tmp/skia/skia && git rev-parse HEAD > /tmp/VERSION
|
|
|
|
#############################################################################
|
|
# Multi-stage build part 2, in which we only have the compiled results and
|
|
# a VERSION in /tmp
|
|
# See https://docs.docker.com/develop/develop-images/multistage-build/
|
|
#############################################################################
|
|
|
|
FROM alpine:latest
|
|
|
|
WORKDIR /tmp/
|
|
|
|
RUN mkdir /tmp/pathkit /tmp/canvaskit
|
|
|
|
COPY --from=builder /tmp/VERSION /tmp/VERSION
|
|
|
|
COPY --from=builder /tmp/skia/skia/out/pathkit/pathkit* /tmp/pathkit/
|
|
|
|
COPY --from=builder /tmp/skia/skia/out/canvaskit_wasm/canvaskit* /tmp/canvaskit/
|
|
|
|
COPY --from=builder /tmp/skia/skia/modules/canvaskit/npm_build/types/index.d.ts /tmp/canvaskit/canvaskit.d.ts
|
|
|
|
COPY --from=builder /tmp/skia/skia/out/debugger_wasm/debugger* /tmp/debugger/
|