|  | Skia Quickstart Guide | 
|  | ===================== | 
|  |  | 
|  |  | 
|  | WARNING: Several steps in this guide are out of sync with our automatically- | 
|  | tested, officially-supported processes for checking out and building Skia. | 
|  | The officially supported processes are the ones documented in skiadocs; see | 
|  | https://sites.google.com/site/skiadocs/user-documentation/quick-start-guides | 
|  |  | 
|  | The steps documented within this file are more experimental in nature. | 
|  |  | 
|  |  | 
|  | This guide assumes you've got `git`, `ninja`, and `python` on your path. | 
|  |  | 
|  | 1. First, checkout Skia: | 
|  | * `git clone https://skia.googlesource.com/skia.git` | 
|  | * `cd skia` | 
|  | 2. Then download the dependencies.  You only need to rerun this when | 
|  | the dependencies change. | 
|  | * `python tools/git-sync-deps` | 
|  | 3. Create our Ninja build files from our Gyp meta-build files.  You only need | 
|  | to rerun this when you sync or change a `.gyp` file. | 
|  | * `GYP_GENERATORS=ninja ./gyp_skia` | 
|  | 4. Now, let's build Skia.  There are a few options: | 
|  | * `ninja -C out/Debug`: no optimization, asserts enabled | 
|  | * `ninja -C out/Release`: optimization, asserts disabled | 
|  | * `ninja -C out/Coverage`: no optimization, asserts enabled, code coverage generated | 
|  | 5. Run some tests: | 
|  | * `out/Debug/tests`: runs unit tests from tests/ | 
|  | * `out/Debug/dm`: runs golden master tests from gm/ | 
|  | 6. Make some changes: | 
|  | * `git checkout -b my-new-feature origin/master` | 
|  | * `vim src/...` | 
|  | * `git commit -am "Changes for my new feature."` | 
|  | * `vim tests/...` | 
|  | * `git commit --amend -a` | 
|  | * `ninja -C out/Debug && out/Debug/tests && out/Debug/dm && echo ok` | 
|  | 7. Rebase your change onto the latest Skia code: | 
|  | * `git pull --rebase` | 
|  | * `ninja -C out/Debug && out/Debug/tests && out/Debug/dm && echo ok` | 
|  | 8. Upload your change and send it out for review: | 
|  | * `git cl upload -r my-skia-reviewer@google.com -s` | 
|  | * `git cl web` | 
|  | 9. Go through code review, get an LGTM, submit using the checkbox on the code review page. |