Index: site/user/quick/desktop.md |
diff --git a/site/user/quick/desktop.md b/site/user/quick/desktop.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..704a41c43ce1189fc5787f5791bb526a867bdc75 |
--- /dev/null |
+++ b/site/user/quick/desktop.md |
@@ -0,0 +1,135 @@ |
+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 |
+----------- |
+ |
+When running `sync-and-gyp`, the `GYP_DEFINES` environment variable can |
+be used to change Skia’s compile-time settings, using a |
+space-separated list of key=value pairs. For example, to disable both |
+the Skia GPU backend and PDF backends, run it as follows: |
+ |
+<!--?prettify lang=sh?--> |
+ |
+ GYP_DEFINES='skia_gpu=0 skia_pdf=0' python bin/sync-and-gyp |
+ ninja -C out/Debug |
+ |
+Note: Setting enviroment variables in the Windows CMD.EXE shell [uses a |
+different syntax](./windows#env). |
+ |
+You can also set environment variables such as `CC`, `CXX`, |
+`CFLAGS`, or `CPPFLAGS` to control how Skia is compiled. For |
+example: |
+ |
+<!--?prettify lang=sh?--> |
+ |
+ CC='clang' CXX='clang++' python bin/sync-and-gyp |
+ ninja -C out/Debug |
+ |
+The `GYP_GENERATORS` environment variable can be used to set the |
+build systems that you want to use (as a comma-separated list). |
+The default is `'ninja,msvs-ninja'` on Windows, `'ninja,xcode'` on |
+Mac OS X, and just `'ninja'` on Linux. For example, to generate |
+only Ninja files on Mac: |
+ |
+<!--?prettify lang=sh?--> |
+ |
+ GYP_GENERATORS='ninja' python bin/sync-and-gyp |
+ ninja -C out/Debug |
+ |
+Finally, the `SKIA_OUT` environment variable can be used to set |
+the path for the build directory. The default is `out` inside the |
+top-level Skia source directory. For example to test Skia with |
+two different compilers: |
+ |
+<!--?prettify lang=sh?--> |
+ |
+ CC='clang' CXX='clang++' SKIA_OUT=~/build/skia_clang python bin/sync-and-gyp |
+ CC='gcc' CXX='g++' SKIA_OUT=~/build/skia_gcc python bin/sync-and-gyp |
+ ninja -C ~/build/skia_clang/Debug |
+ ninja -C ~/build/skia_gcc/Debug |
+ |
+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). |