Linux
=====
Quickstart
----------
<!--?prettify lang=sh?-->
# Install depot_tools (this provides ninja and git-cl).
git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git'
export PATH="${PWD}/depot_tools:${PATH}"
# Get Skia.
git clone 'https://skia.googlesource.com/skia'
cd skia
# Install Dependencies (may require sudo).
tools/install_dependencies.sh
# Sync, Config, and Build.
bin/sync-and-gyp
ninja -C out/Debug dm SampleApp
# Run DM, the Skia test app.
out/Debug/dm
# Run SampleApp.
out/Debug/SampleApp
# Run nanobench, the Skia benchmarking tool.
ninja -C out/Release nanobench
out/Release/nanobench
<a name="prerequisites"></a>Prerequisites
-----------------------------------------
On a Ubuntu 12.04 (Precise) or Ubuntu 14.04 (Trusty) system, you can run
`tools/install_dependencies.sh`, which will install the needed packages. On
Ubuntu 12.04, you will need to install the`ninja` build tool separately, which
comes with Chromium's `depot_tools`.
To contribute changes back to Skia, you will need `git-cl`, which
comes with Chromium's `depot_tools`.
(If you use another Linux distribution, please consider contributing back
instructions for installing the required packages — we can then incorporate
that knowledge into the `tools/install_dependencies.sh` tool.)
Make sure the following have been installed:
* [Chromium depot_tools](http://www.chromium.org/developers/how-tos/depottools)
* A C++ compiler (typically GCC or Clang) **build-essential** or **clang-3.6**
* Python 2.7.x: **python2.7-dev**
* The FreeType and Fontconfig font engines: **libfreetype6-dev** and
**libfontconfig1-dev**
* Mesa OpenGL utility library headers: **libglu1-mesa-dev**
* Mesa headers: **mesa-common-dev**
* GL, such as **freeglut3-dev**
* QT4, used by the [Skia Debugger](/dev/tools/debugger): **libqt4-dev**
Check out the source code
-------------------------
Follow the instructions [here](../download) for downloading the Skia source.
Notes
-----
1. On 32-bit Linux (when `uname -m` is *not* `x86_64`), you will have to
explicitly specify the architecture:
<!--?prettify lang=sh?-->
GYP_DEFINES='skia_arch_type=x86' python bin/sync-and-gyp
2. By default, many Linux systems use gcc by default. To use clang you will
need to [set the CC and CXX environment variables](/user/tips#gypdefines).
Generate build files
--------------------
See [this page for generating build files and run tests](desktop).