diff options
author | jcgregorio <jcgregorio@google.com> | 2015-01-08 11:28:51 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-08 11:28:51 -0800 |
commit | 7c3bace0d5603539798361dc5136c02f4523ce7d (patch) | |
tree | 06947c4bcbdddaf3ab62674532b643976db9c42d /site | |
parent | 00e0814a499ae46b46b8ebc9e6dde3d812d16297 (diff) |
Add Linux quick start docs
Preview: http://skiadocs.com:8000/user/quick/linux?cl=846523002
BUG=skia:
Review URL: https://codereview.chromium.org/846523002
Diffstat (limited to 'site')
-rw-r--r-- | site/user/quick/linux.md | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/site/user/quick/linux.md b/site/user/quick/linux.md new file mode 100644 index 0000000000..db3f16ba82 --- /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 |