• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Dockerfile for building Skia in release mode, using 3rd party libs from DEPS, with SwiftShader.
2FROM launcher.gcr.io/google/clang-debian9 AS build
3RUN apt-get update && apt-get upgrade -y && apt-get install -y \
4  git \
5  python \
6  curl \
7  build-essential \
8  libfontconfig-dev \
9  libgl1-mesa-dev \
10  libglu1-mesa-dev \
11  && groupadd -g 2000 skia \
12  && useradd -u 2000 -g 2000 skia
13
14USER skia
15
16ADD --chown=skia:skia https://storage.googleapis.com/swiftshader-binaries/OpenGL_ES/Latest/Linux/libGLESv2.so /usr/local/lib/libGLESv2.so
17ADD --chown=skia:skia  https://storage.googleapis.com/swiftshader-binaries/OpenGL_ES/Latest/Linux/libEGL.so /usr/local/lib/libEGL.so
18RUN cd /tmp \
19  && git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' \
20  && git clone https://swiftshader.googlesource.com/SwiftShader swiftshader \
21  && mkdir -p /tmp/skia \
22  && cd /tmp/skia \
23  && /tmp/depot_tools/fetch skia \
24  && cd skia
25
26RUN mkdir -p /tmp/skia/skia/out/Static
27RUN echo '  \n\
28cc = "clang"  \n\
29cxx = "clang++"  \n\
30skia_use_egl = true  \n\
31is_debug = false  \n\
32skia_use_system_freetype2 = false  \n\
33extra_cflags = [  \n\
34  "-I/tmp/swiftshader/include",  \n\
35  "-DGR_EGL_TRY_GLES3_THEN_GLES2",  \n\
36  "-g0",  \n\
37]  \n\
38extra_ldflags = [  \n\
39  "-L/usr/local/lib",  \n\
40  "-Wl,-rpath",  \n\
41  "-Wl,/usr/local/lib"  \n\
42] ' > /tmp/skia/skia/out/Static/args.gn
43
44RUN cd /tmp/skia/skia \
45  && python tools/git-sync-deps \
46  && ./bin/fetch-gn \
47  && ./bin/gn gen out/Static \
48  && git rev-parse HEAD > VERSION \
49  && /tmp/depot_tools/ninja -C out/Static
50
51# Uncomment the lines below and update the ref to patch in a CL.
52#
53#RUN cd /tmp/skia/skia \
54#  && git fetch https://skia.googlesource.com/skia refs/changes/25/130325/15 \
55#  && git checkout FETCH_HEAD \
56#  && /tmp/depot_tools/ninja -C out/Static
57