blob: eee7f10460fcb7fa3f944ab98752f5f4e5cb3926 [file] [log] [blame]
FROM gcr.io/skia-public/fiddler-base@sha256:02e3ab2d1e4e0888b788b3adc6d6b955f283e73e0245a9f02552a6d654f33c4c
# https://stackoverflow.com/a/44766666
# Copy the skia files that Louhi has cloned into the image. Louhi hasn't synced third party
# deps, so we will need to do that before compiling (see next steps).
COPY --chown=skia:skia . /tmp/skia
# We need to call gclient config so gclient sync works later to get our third party deps
# We want --unmanaged to make gclient not sync Skia and instead use the files we copied
# into the container.
RUN cd /tmp && gclient config --unmanaged --name=skia https://skia.googlesource.com/skia.git
WORKDIR /tmp/skia/
# Fetch things we need but delete large third-party folders that we don't need for fiddler
RUN ./bin/fetch-gn \
&& ./bin/fetch-ninja \
&& gclient sync \
&& rm -rf third_party/externals/dawn \
third_party/externals/emsdk \
third_party/externals/icu4x \
third_party/externals/opengl-registry \
third_party/externals/perfetto \
third_party/externals/swiftshader \
third_party/externals/unicodetools
RUN mkdir -p ./out/Static
RUN echo ' \n\
cc = "clang" \n\
cxx = "clang++" \n\
skia_use_egl = true \n\
is_debug = false \n\
skia_enable_fontmgr_fontconfig = true \n\
skia_use_perfetto = false \n\
skia_use_libgrapheme = false \n\
skia_use_icu4x = false \n\
skia_use_system_freetype2 = false \n\
link_pool_depth=2 \n\
extra_cflags = [ \n\
"-I/tmp/swiftshader/include", \n\
"-DGR_EGL_TRY_GLES3_THEN_GLES2", \n\
"-g0", \n\
] \n\
extra_ldflags = [ \n\
"-L/usr/local/lib", \n\
"-Wl,-rpath", \n\
"-Wl,/usr/local/lib" \n\
] ' > ./out/Static/args.gn
# Build Skia once so that incremental builds are much faster
RUN ./bin/gn gen out/Static
RUN git rev-parse HEAD > VERSION
RUN ./third_party/ninja/ninja -C out/Static fiddle
# Cleanup .git directories because they are not needed and take up space.
# (can't do this sooner because we need to create VERSION)
RUN find . -name .git -print0 | xargs -0 rm -rf