xref: /aosp_15_r20/external/skia/infra/fiddler-backend/Dockerfile (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard WorkerFROM gcr.io/skia-public/fiddler-base@sha256:02e3ab2d1e4e0888b788b3adc6d6b955f283e73e0245a9f02552a6d654f33c4c
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Worker# https://stackoverflow.com/a/44766666
4*c8dee2aaSAndroid Build Coastguard Worker# Copy the skia files that Louhi has cloned into the image. Louhi hasn't synced third party
5*c8dee2aaSAndroid Build Coastguard Worker# deps, so we will need to do that before compiling (see next steps).
6*c8dee2aaSAndroid Build Coastguard WorkerCOPY --chown=skia:skia . /tmp/skia
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Worker# We need to call gclient config so gclient sync works later to get our third party deps
9*c8dee2aaSAndroid Build Coastguard Worker# We want --unmanaged to make gclient not sync Skia and instead use the files we copied
10*c8dee2aaSAndroid Build Coastguard Worker# into the container.
11*c8dee2aaSAndroid Build Coastguard WorkerRUN cd /tmp && gclient config --unmanaged --name=skia https://skia.googlesource.com/skia.git
12*c8dee2aaSAndroid Build Coastguard Worker
13*c8dee2aaSAndroid Build Coastguard WorkerWORKDIR /tmp/skia/
14*c8dee2aaSAndroid Build Coastguard Worker
15*c8dee2aaSAndroid Build Coastguard Worker# Fetch things we need but delete large third-party folders that we don't need for fiddler
16*c8dee2aaSAndroid Build Coastguard WorkerRUN ./bin/fetch-gn \
17*c8dee2aaSAndroid Build Coastguard Worker  && ./bin/fetch-ninja \
18*c8dee2aaSAndroid Build Coastguard Worker  && gclient sync \
19*c8dee2aaSAndroid Build Coastguard Worker  && rm -rf third_party/externals/dawn \
20*c8dee2aaSAndroid Build Coastguard Worker           third_party/externals/emsdk \
21*c8dee2aaSAndroid Build Coastguard Worker           third_party/externals/icu4x \
22*c8dee2aaSAndroid Build Coastguard Worker           third_party/externals/opengl-registry \
23*c8dee2aaSAndroid Build Coastguard Worker           third_party/externals/perfetto \
24*c8dee2aaSAndroid Build Coastguard Worker           third_party/externals/swiftshader \
25*c8dee2aaSAndroid Build Coastguard Worker           third_party/externals/unicodetools
26*c8dee2aaSAndroid Build Coastguard Worker
27*c8dee2aaSAndroid Build Coastguard WorkerRUN mkdir -p ./out/Static
28*c8dee2aaSAndroid Build Coastguard WorkerRUN echo '  \n\
29*c8dee2aaSAndroid Build Coastguard Workercc = "clang"  \n\
30*c8dee2aaSAndroid Build Coastguard Workercxx = "clang++"  \n\
31*c8dee2aaSAndroid Build Coastguard Workerskia_use_egl = true  \n\
32*c8dee2aaSAndroid Build Coastguard Workeris_debug = false  \n\
33*c8dee2aaSAndroid Build Coastguard Workerskia_enable_fontmgr_fontconfig = true \n\
34*c8dee2aaSAndroid Build Coastguard Workerskia_use_perfetto = false \n\
35*c8dee2aaSAndroid Build Coastguard Workerskia_use_libgrapheme = false \n\
36*c8dee2aaSAndroid Build Coastguard Workerskia_use_icu4x = false \n\
37*c8dee2aaSAndroid Build Coastguard Workerskia_use_system_freetype2 = false  \n\
38*c8dee2aaSAndroid Build Coastguard Workerlink_pool_depth=2  \n\
39*c8dee2aaSAndroid Build Coastguard Workerextra_cflags = [  \n\
40*c8dee2aaSAndroid Build Coastguard Worker  "-I/tmp/swiftshader/include",  \n\
41*c8dee2aaSAndroid Build Coastguard Worker  "-DGR_EGL_TRY_GLES3_THEN_GLES2",  \n\
42*c8dee2aaSAndroid Build Coastguard Worker  "-g0",  \n\
43*c8dee2aaSAndroid Build Coastguard Worker]  \n\
44*c8dee2aaSAndroid Build Coastguard Workerextra_ldflags = [  \n\
45*c8dee2aaSAndroid Build Coastguard Worker  "-L/usr/local/lib",  \n\
46*c8dee2aaSAndroid Build Coastguard Worker  "-Wl,-rpath",  \n\
47*c8dee2aaSAndroid Build Coastguard Worker  "-Wl,/usr/local/lib"  \n\
48*c8dee2aaSAndroid Build Coastguard Worker] ' > ./out/Static/args.gn
49*c8dee2aaSAndroid Build Coastguard Worker
50*c8dee2aaSAndroid Build Coastguard Worker# Build Skia once so that incremental builds are much faster
51*c8dee2aaSAndroid Build Coastguard WorkerRUN ./bin/gn gen out/Static
52*c8dee2aaSAndroid Build Coastguard WorkerRUN git rev-parse HEAD > VERSION
53*c8dee2aaSAndroid Build Coastguard WorkerRUN ./third_party/ninja/ninja -C out/Static fiddle
54*c8dee2aaSAndroid Build Coastguard Worker
55*c8dee2aaSAndroid Build Coastguard Worker# Cleanup .git directories because they are not needed and take up space.
56*c8dee2aaSAndroid Build Coastguard Worker# (can't do this sooner because we need to create VERSION)
57*c8dee2aaSAndroid Build Coastguard WorkerRUN find . -name .git -print0 | xargs -0 rm -rf
58