aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar jcgregorio <jcgregorio@google.com>2015-01-08 11:28:51 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-01-08 11:28:51 -0800
commit7c3bace0d5603539798361dc5136c02f4523ce7d (patch)
tree06947c4bcbdddaf3ab62674532b643976db9c42d
parent00e0814a499ae46b46b8ebc9e6dde3d812d16297 (diff)
Add Linux quick start docs
-rw-r--r--site/user/quick/linux.md132
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