commit-bot@chromium.org | 8f22011 | 2014-01-24 19:25:39 +0000 | [diff] [blame] | 1 | Skia Quickstart Guide |
| 2 | ===================== |
| 3 | |
commit-bot@chromium.org | 07b7462 | 2014-04-21 19:18:46 +0000 | [diff] [blame^] | 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 | |
commit-bot@chromium.org | 71e800a | 2014-04-16 19:21:00 +0000 | [diff] [blame] | 13 | This guide assumes you've got `git`, `ninja`, and `python` on your path. |
commit-bot@chromium.org | 8f22011 | 2014-01-24 19:25:39 +0000 | [diff] [blame] | 14 | |
commit-bot@chromium.org | 71e800a | 2014-04-16 19:21:00 +0000 | [diff] [blame] | 15 | 1. First, checkout Skia: |
| 16 | * `git clone https://skia.googlesource.com/skia.git` |
commit-bot@chromium.org | 8f22011 | 2014-01-24 19:25:39 +0000 | [diff] [blame] | 17 | * `cd skia` |
commit-bot@chromium.org | 71e800a | 2014-04-16 19:21:00 +0000 | [diff] [blame] | 18 | 2. Then download the dependencies. You only need to rerun this when |
| 19 | the dependencies change. |
| 20 | * `python tools/git-sync-deps` |
commit-bot@chromium.org | 8f22011 | 2014-01-24 19:25:39 +0000 | [diff] [blame] | 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@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. |