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