1cb93a386Sopenharmony_ci# Dockerfile for building Skia in release mode, using 3rd party libs from DEPS, with SwiftShader. 2cb93a386Sopenharmony_ciFROM gcr.io/skia-public/skia-build-tools:latest 3cb93a386Sopenharmony_ci 4cb93a386Sopenharmony_ciRUN cd /tmp \ 5cb93a386Sopenharmony_ci && git clone https://swiftshader.googlesource.com/SwiftShader swiftshader 6cb93a386Sopenharmony_ci 7cb93a386Sopenharmony_ci# Checkout Skia. 8cb93a386Sopenharmony_ciRUN mkdir -p /tmp/skia \ 9cb93a386Sopenharmony_ci && cd /tmp/skia \ 10cb93a386Sopenharmony_ci && fetch skia 11cb93a386Sopenharmony_ci 12cb93a386Sopenharmony_ci# Set fake identity for git rebase. See thread in 13cb93a386Sopenharmony_ci# https://skia-review.googlesource.com/c/buildbot/+/286537/5/docker/Dockerfile#46 14cb93a386Sopenharmony_ciRUN cd /tmp/skia/skia \ 15cb93a386Sopenharmony_ci && git config user.email "skia@skia.org" \ 16cb93a386Sopenharmony_ci && git config user.name "Skia" 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_ci# HASH must be specified. 19cb93a386Sopenharmony_ciARG HASH 20cb93a386Sopenharmony_ciRUN if [ -z "${HASH}" ] ; then echo "HASH must be specified as a --build-arg"; exit 1; fi 21cb93a386Sopenharmony_ci 22cb93a386Sopenharmony_ciRUN cd /tmp/skia/skia \ 23cb93a386Sopenharmony_ci && git fetch \ 24cb93a386Sopenharmony_ci && git reset --hard ${HASH} 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci# If patch ref is specified then update the ref to patch in a CL. 27cb93a386Sopenharmony_ciARG PATCH_REF 28cb93a386Sopenharmony_ciRUN if [ ! -z "${PATCH_REF}" ] ; then cd /tmp/skia/skia \ 29cb93a386Sopenharmony_ci && git fetch https://skia.googlesource.com/skia ${PATCH_REF} \ 30cb93a386Sopenharmony_ci && git checkout FETCH_HEAD \ 31cb93a386Sopenharmony_ci && git rebase ${HASH}; fi 32cb93a386Sopenharmony_ci 33cb93a386Sopenharmony_ciRUN cd /tmp/skia/skia \ 34cb93a386Sopenharmony_ci && gclient sync \ 35cb93a386Sopenharmony_ci && ./bin/fetch-gn 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci# Write args.gn. 38cb93a386Sopenharmony_ciRUN mkdir -p /tmp/skia/skia/out/Static 39cb93a386Sopenharmony_ciRUN echo ' \n\ 40cb93a386Sopenharmony_cicc = "clang" \n\ 41cb93a386Sopenharmony_cicxx = "clang++" \n\ 42cb93a386Sopenharmony_ciskia_use_egl = true \n\ 43cb93a386Sopenharmony_ciis_debug = false \n\ 44cb93a386Sopenharmony_ciskia_use_system_freetype2 = false \n\ 45cb93a386Sopenharmony_ciextra_cflags = [ \n\ 46cb93a386Sopenharmony_ci "-I/tmp/swiftshader/include", \n\ 47cb93a386Sopenharmony_ci "-DGR_EGL_TRY_GLES3_THEN_GLES2", \n\ 48cb93a386Sopenharmony_ci "-g0", \n\ 49cb93a386Sopenharmony_ci] \n\ 50cb93a386Sopenharmony_ciextra_ldflags = [ \n\ 51cb93a386Sopenharmony_ci "-L/usr/local/lib", \n\ 52cb93a386Sopenharmony_ci "-Wl,-rpath", \n\ 53cb93a386Sopenharmony_ci "-Wl,/usr/local/lib" \n\ 54cb93a386Sopenharmony_ci] ' > /tmp/skia/skia/out/Static/args.gn 55cb93a386Sopenharmony_ci 56cb93a386Sopenharmony_ci# Build Skia. 57cb93a386Sopenharmony_ciRUN cd /tmp/skia/skia \ 58cb93a386Sopenharmony_ci && ./bin/gn gen out/Static \ 59cb93a386Sopenharmony_ci && git rev-parse HEAD > VERSION \ 60cb93a386Sopenharmony_ci && /tmp/depot_tools/ninja -C out/Static \ 61cb93a386Sopenharmony_ci && chown -R skia:skia . 62