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