Desktop ======= Instructions to get started with Skia on desktop systems (Linux, Mac OS X, or Windows). 1. [Download Skia](/user/download) <!--?prettify lang=sh?--> git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' export PATH="${PWD}/depot_tools:${PATH}" git clone 'https://skia.googlesource.com/skia.git' cd skia (On Windows without git, swap steps 1 and 2) 2. Install system-specific prerequisites. - [Linux](/user/quick/linux) - [Mac OS X](/user/quick/macos) - [Windows](/user/quick/windows) 3. Sync dependencies and config. Build. Run tests. <!--?prettify lang=sh?--> python bin/sync-and-gyp ninja -C out/Debug out/Debug/dm Gyp Options ----------- Skia relies on Gyp to generate build files. Read about [specifying options for Gyp](/user/tips#gypdefines) to set the compile-time settings, compiler (e.g. use clang instead of gcc), build systems, and build directory. Run unit and correctness tests ------------------------------ [DM](../../dev/testing/testing) ("diamond master") is the Skia test app. <!--?prettify lang=sh?--> ninja -C out/Debug dm out/Debug/dm Run Skia samples ---------------- [SampleApp](../sample/sampleapp) is the Skia sample program. <!--?prettify lang=sh?--> ninja -C out/Debug SampleApp out/Debug/SampleApp Build non-debug binaries ------------------------ The usual mode you want for testing is Debug mode (`SK_DEBUG` is defined, and debug symbols are included in the binary). If you would like to build the Release mode: <!--?prettify lang=sh?--> ninja -C out/Release Performance tests ----------------- Build and run nanobench (performance tests). In this case, we will build with the "Release" configuration, since we are running performance tests. <!--?prettify lang=sh?--> ninja -C out/Release nanobench out/Release/nanobench out/Release/nanobench --skps .../path/to/*.skp <!-- TODO(mtklein): document nanobench --> Keeping up to date ------------------ <!--?prettify lang=sh?--> git fetch origin git checkout origin/master Contribute to Skia ------------------ [How to use Git and Git-cl to contribute to Skia](/dev/contrib/submit).