| Index: site/user/quick/linux.md
|
| diff --git a/site/user/quick/linux.md b/site/user/quick/linux.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..db3f16ba8206cd2abd83c7998859a36d5c017fc7
|
| --- /dev/null
|
| +++ b/site/user/quick/linux.md
|
| @@ -0,0 +1,132 @@
|
| +Linux
|
| +=====
|
| +
|
| +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)
|
| + * python 2.7.x
|
| + * suggested Ubuntu packages: python2.7, python2.7-dev
|
| + * The FreeType and Fontconfig font engines
|
| + * suggested Ubuntu packages: libfreetype6, libfreetype6-dev , libfontconfig , libfontconfig-dev e.g., `sudo apt-get install libfreetype6 libfreetype6-dev libfontconfig libfontconfig-dev`
|
| + * libpng
|
| + * suggested Ubuntu packages: libpng12-0, libpng12-dev e.g., `sudo apt-get install libpng12-0 libpng12-dev`
|
| + * libgif
|
| + * suggested Ubuntu package: libgif-dev e.g., `sudo apt-get install libgif-dev`
|
| + * `$ sudo apt-get install libgif4:i386`
|
| + * `$ sudo ln -s /usr/lib/i386-linux-gnu/libgif.so.4 /usr/lib/i386-linux-gnu/libgif.so`
|
| + * libglu1-mesa-dev
|
| + * mesa-common-dev
|
| + * GL
|
| + * such as freeglut3-dev
|
| + * Poppler PDF rendering library C++ development files
|
| + * suggested Ubuntu package: libpoppler-cpp-dev
|
| +
|
| +Check out the source code
|
| +-------------------------
|
| +
|
| +Follow the instructions [here](../download) for downloading the Skia source.
|
| +
|
| +
|
| +Generate build files
|
| +--------------------
|
| +
|
| +We use the open-source gyp tool to generate ninja files (and analogous build
|
| +scripts on other platforms) from our multiplatform "gyp" files.
|
| +
|
| +Generate the build files by running the following in your Skia home directory:
|
| +
|
| + ./gyp_skia
|
| +
|
| +Or, you can just rely on it being run automatically by using `make` instead of
|
| +`ninja` in examples shown below.
|
| +
|
| +If you want to use Eclipse, see Creating an Eclipse Project after you have generated the makefiles.
|
| +
|
| +Build and run tests from the command line
|
| +-----------------------------------------
|
| +
|
| + ninja -C out/Debug dm
|
| + out/Debug/dm
|
| +
|
| +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 version instead
|
| +-----------------------
|
| +
|
| + ninja -C out/Release dm
|
| + out/Release/dm
|
| +
|
| +Build and run nanobench (performance tests)
|
| +-------------------------------------------
|
| +
|
| +In this case, we will build with the "Release" configuration, since we are
|
| +running performance tests.
|
| +
|
| + ninja -C out/Release nanobench
|
| + out/Release/nanobench [ --skps path/to/*.skp ]
|
| +
|
| +Build and run SampleApp
|
| +-----------------------
|
| +
|
| +This time we will add the `-j` flag to fire up multiple threads during the
|
| +build. (This can be used with the other targets too.)
|
| +
|
| + make -j SampleApp
|
| + out/Debug/SampleApp
|
| +
|
| +When this launches, you should see a window with various graphical examples.
|
| +To move through the sample app, use the following keypresses:
|
| +
|
| + * right-arrow key: cycle through different test pages
|
| + * left-arrow key: cycle through rendering methods for each test page
|
| + * other keys are defined in SampleApp.cpp’s SampleWindow::onHandleKey() and SampleWindow::onHandleChar() methods
|
| +
|
| +Build and run gm ("golden master") tests
|
| +----------------------------------------
|
| +
|
| +This will display the return value (0 = success) after running the tests...
|
| +
|
| + make -j gm
|
| + out/Debug/gm -r gm/base-linux ; echo $?
|
| +
|
| +You can also adjust the type used to represent SkScalar. By default, we use a
|
| +float. To change that, run it as follows:
|
| +
|
| + GYP_DEFINES="skia_scalar=fixed" make -j gm
|
| + out/Debug/gm -r gm/base-linux-fixed ; echo $?
|
| +
|
| +Build and run bench (performance testbench)
|
| +-------------------------------------------
|
| +
|
| +Since bench tests performance, it usually makes more sense to run it in
|
| +Release mode...
|
| +
|
| + make -j bench BUILDTYPE=Release
|
| + out/Release/bench
|
| +
|
| +Build tools
|
| +-----------
|
| +
|
| + make -j tools
|
| + out/Debug/skdiff
|
| +
|
| +Clean up all generated files
|
| +----------------------------
|
| +
|
| + make clean
|
|
|