Add Linux quick start docs
Preview: http://skiadocs.com:8000/user/quick/linux?cl=846523002 BUG=skia: Review URL: https://codereview.chromium.org/846523002
This commit is contained in:
parent
00e0814a49
commit
7c3bace0d5
132
site/user/quick/linux.md
Normal file
132
site/user/quick/linux.md
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user