This is a reland of ecac712bec
Changes (best viewed comparing PS1 to latest)
- Use emsdk 3.1.3 which includes important bug fixes
- Remove unnecessary steps in compile.sh
- Fix use of various gn args.
- Avoid conflicts with Flutter's GN symbols
- Add/update docs
- Make activate-emsdk script compatible with our infra.
Original change's description:
> Build CanvasKit using GN/Ninja
>
> Build with
>
> ./bin/gn gen out/wasm_debug '--args=target_cpu="wasm"'
>
> or
>
> ./bin/gn gen out/wasm_release '--args=target_cpu="wasm" is_debug=false'
>
> Change-Id: Ib74586bf8397d57064a3899eaa6da76f9bce9049
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502036
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>
Change-Id: I601712a8953c2799fa029e782e097905b95e6b59
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507717
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
This allows us to use a newer Clang version that supports C++17.
Change-Id: Ifbff4dbd1f1da0212ea633eb81beb50ebe7744ac
Bug: skia:12875
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/501479
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
There was a break that was solved by adding -lGL to our link
steps. I discovered a few extra flags to aid in debugging builds
and I've left those in (they aren't too noisy IMO).
This changes the base dockerfile to use the official emscripten one.
Code size delta for full build is +5 kb
For future reference, emsdk decides which "library JS" files to
pull in using a83ba99d60/tools/building.py (L1553)
Those JS files live in src (e.g. a83ba99d60/src/library_html5_webgl.js (L222))
and define functions that the C++ code can call.
I'd like to follow-up on what -lEGL is doing.
Also, since the new image no longer has depot_tools, we need
to make docker/skia-wasm-release/Dockerfile install it.
Change-Id: I5a38e61e5080e9c4cb1e0a7e031509bcb107ff86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/311726
Reviewed-by: Nathaniel Nifong <nifong@google.com>
depot_tools w/vpython now seems to require the depot_tools dir
to be on PATH, and also python and curl need to be installed.
* Creates a new base image that has all the build tools we need for
building Skia: skia-build-tools.
* Moves skia-release to use that new base image.
* Moves both the skia-release and wasm builds to use fetch and gclient sync.
* Changes gcr.io/skia-public/emsdk-base:prod to depend on skia-build-tools.
Bug: skia:993053
Change-Id: Ib6218d8c18dd59d43de84dcf063f204cfc8556d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248556
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This reverts commit e7bc084498.
Reason for revert: Broke fiddle.
Original change's description:
> Another attempt to fix vpython in Cloud Build.
>
> I think the underlying issue is switching to the 'skia' user
> to do the build. Instead let's try building as root and then
> chown the generated files which are then used by subsequent
> Dockerfiles.
>
> Bug:993053
> Change-Id: I314a6c83f70e611ec0fafe93ae136d218d153cfb
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247107
> Reviewed-by: Joe Gregorio <jcgregorio@google.com>
> Commit-Queue: Joe Gregorio <jcgregorio@google.com>
TBR=borenet@google.com,jcgregorio@google.com
Change-Id: I2e0968bc032a2c7716d95d51ba598d94fc67f1ca
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 993053
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247143
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
I think the underlying issue is switching to the 'skia' user
to do the build. Instead let's try building as root and then
chown the generated files which are then used by subsequent
Dockerfiles.
Bug:993053
Change-Id: I314a6c83f70e611ec0fafe93ae136d218d153cfb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247107
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Bug: 993053
Change-Id: I6069def4a063dbe7a4f8c6fe9cc5046d014e4f3c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247046
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
The line:
USER skia
also sets the $HOME environment variable to /home/skia unless
useradd is given another directory to use as the user's home
directory. So HOME was set to /home/skia, but that directory
doesn't exist in subsequent containers.
Bug: chromuim:993053
Change-Id: I3525d7cf11a1c1e5559cf9216c3bf6071a236949
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244116
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Robbie Iannucci <iannucci@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Change-Id: I5cd133f9de490340a958403c06ab1c8c44017001
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223186
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
For now, disable the vpmovusdb AVX-512 instruction, using the compound
AVX2 fallback instead. I need to learn how to encode EVEX prefixes
before we can use that, and it's not very important.
That's everything! We're fully in control now, and should be able to
run this on any x86-64 Linux or Mac. And we can relax some of the
defined(SKVM_JIT) guards so that, e.g., we can unit test Assembler even
on all platforms.
Stifle some warnings about ~bool by ~(int)bool.
Would like to enable when is_mac too but can't seem to get past
(bogus?) thread annotation on the bots. My local Mac is fine. :/
Change-Id: If00bdd97ebd9684ed109933e2fa70c5e6f6ea339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/222631
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Bug: skia:9184
Change-Id: Ia78094f5bd2a0cf3c8368933b3719df01ab1e646
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221540
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Merge branch 'master' of https://skia.googlesource.com/skia into buildwasm
Two-part commit required, compile.sh changes first.
needed hashbang line to run in docker
Include wasm debugger in continuous build
Bug: skia:
Change-Id: I378bff703bdf884ca4da266d00069405ed8613d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205266
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Bug: skia:
Change-Id: I3364fa6b89674f65bf493467198740e1862d215e
Reviewed-on: https://skia-review.googlesource.com/c/191291
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
ANGLE's build requires a file copy. Nema's build requires a dir copy. CMake
uses a different command for each. gn does not distinguish which. We make
a guess that happens to work for these two use cases based on the whether
the base file name of the src contains a '.'
Change-Id: I3503fd9d632abda3f8f952d0eef964019d932bea
Reviewed-on: https://skia-review.googlesource.com/c/188626
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This is a little more complicated than other builds because we need
the webassembly binaries out fo skia-wasm-release when we do the webpack
step and we can't run docker (e.g. docker run skia-wasm-release cp foo.wasm)
inside of the skia-public/infra:prod image.
To get around this limitation, we add a step that extracts the binaries to
a /workspace/wasm-products folder (which persists between steps) and mount
that folder as a volume for when we make the jsfiddle output. The only tricky
thing is that we must manually mount the /workspace/__jsfiddle_staging folder
as a volume too, or it doesn't persist to the build step.
Something similar will be needed for skottie.skia.org after
https://skia-review.googlesource.com/c/buildbot/+/169700 lands.
Bug: skia:
Change-Id: Iec05fff7231a28ecfa209489e5c75a9621b334d2
Reviewed-on: https://skia-review.googlesource.com/c/169821
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
The previous version had several gigs of buildtools, source code, etc.
This is much smaller and easier to download for tools like
jsfiddles.skia.org and (soon) skottie.skia.org
Bug: skia:
Change-Id: I748487abb1c6f6e82476076d22a27a5d4f90f75a
Reviewed-on: https://skia-review.googlesource.com/c/169240
Reviewed-by: Kevin Lubick <kjlubick@google.com>
This should let us pipe continuous builds into jsfiddle.skia.org and
skottie.skia.org
Bug: skia:
Change-Id: I587e1293237d42dfdacae0757f44634f29d6f251
Reviewed-on: https://skia-review.googlesource.com/c/168440
Reviewed-by: Joe Gregorio <jcgregorio@google.com>