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 |