blob: 601ecf4f4f75eee134b4b18e7181d815ad29f001 [file] [log] [blame] [view]
commit-bot@chromium.org8f220112014-01-24 19:25:39 +00001Skia Quickstart Guide
2=====================
3
commit-bot@chromium.org71e800a2014-04-16 19:21:00 +00004This guide assumes you've got `git`, `ninja`, and `python` on your path.
commit-bot@chromium.org8f220112014-01-24 19:25:39 +00005
commit-bot@chromium.org71e800a2014-04-16 19:21:00 +000061. First, checkout Skia:
7 * `git clone https://skia.googlesource.com/skia.git`
commit-bot@chromium.org8f220112014-01-24 19:25:39 +00008 * `cd skia`
commit-bot@chromium.org71e800a2014-04-16 19:21:00 +000092. Then download the dependencies. You only need to rerun this when
10 the dependencies change.
11 * `python tools/git-sync-deps`
commit-bot@chromium.org8f220112014-01-24 19:25:39 +0000123. Create our Ninja build files from our Gyp meta-build files. You only need
13 to rerun this when you sync or change a `.gyp` file.
14 * `GYP_GENERATORS=ninja ./gyp_skia`
154. Now, let's build Skia. There are a few options:
16 * `ninja -C out/Debug`: no optimization, asserts enabled
17 * `ninja -C out/Release`: optimization, asserts disabled
18 * `ninja -C out/Coverage`: no optimization, asserts enabled, code coverage generated
195. Run some tests:
20 * `out/Debug/tests`: runs unit tests from tests/
21 * `out/Debug/dm`: runs golden master tests from gm/
226. Make some changes:
23 * `git checkout -b my-new-feature origin/master`
24 * `vim src/...`
25 * `git commit -am "Changes for my new feature."`
26 * `vim tests/...`
27 * `git commit --amend -a`
28 * `ninja -C out/Debug && out/Debug/tests && out/Debug/dm && echo ok`
297. Rebase your change onto the latest Skia code:
30 * `git pull --rebase`
31 * `ninja -C out/Debug && out/Debug/tests && out/Debug/dm && echo ok`
328. Upload your change and send it out for review:
33 * `git cl upload -r my-skia-reviewer@google.com -s`
34 * `git cl web`
359. Go through code review, get an LGTM, submit using the checkbox on the code review page.