94 lines
3.2 KiB
Markdown
94 lines
3.2 KiB
Markdown
|
NaCl (Experimental)
|
||
|
===================
|
||
|
|
||
|
Important Notes
|
||
|
---------------
|
||
|
|
||
|
* This process has only been verified to work on Linux
|
||
|
* Skia for NaCl is new and currently under development. Therefore, some features are not (yet) supported:
|
||
|
* GPU backend
|
||
|
* Fonts - Currently, NaCl has no way to access system fonts. This means
|
||
|
that text drawn in Skia will not display. A Pepper font API is in the
|
||
|
works and should be available in the near future, but for now your best
|
||
|
bet is to either package font data with your nexe or to send font data
|
||
|
from javascript to your plugin at runtime. Note that this will be the
|
||
|
case with any graphics library in NaCl until the font API is finished.
|
||
|
|
||
|
Prerequisites
|
||
|
-------------
|
||
|
|
||
|
Execute the following commands in whatever directory you want to hold the NaCl SDK directory:
|
||
|
|
||
|
wget http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
|
||
|
unzip nacl_sdk.zip
|
||
|
rm nacl_sdk.zip
|
||
|
nacl_sdk/naclsdk update pepper_32
|
||
|
export NACL_SDK_ROOT=/path/to/nacl_sdk
|
||
|
|
||
|
Check out the Skia source
|
||
|
-------------------------
|
||
|
|
||
|
We use the "gclient" script (part of the depot_tools toolkit) to manage the
|
||
|
Skia source code. Follow the instructions at
|
||
|
http://www.chromium.org/developers/how-tos/depottools to get the gclient
|
||
|
script from depot_tools.
|
||
|
|
||
|
Instead of checking out trunk directly you will use gclient to checkout the
|
||
|
nacl directory, which will automatically pull the trunk directory for you.
|
||
|
Execute the following commands in whatever directory you want to be the root
|
||
|
for your Skia on NaCl development:
|
||
|
|
||
|
gclient config https://skia.googlesource.com/skia.git
|
||
|
gclient sync
|
||
|
|
||
|
Building the Skia libraries for NaCl
|
||
|
------------------------------------
|
||
|
|
||
|
The nacl_make script is used to compile Skia targets for NaCl. It sets the
|
||
|
appropriate environment variables, calls GYP to generate makefiles, and runs
|
||
|
Make to build both 32 and 64-bit targets as required by NaCl. To build the
|
||
|
Skia libraries, run the following from the trunk directory:
|
||
|
|
||
|
platform_tools/nacl/nacl_make skia_lib
|
||
|
|
||
|
This will result in a set of static libraries being built into the out/nacl32
|
||
|
and out/nacl64 directories. You can use these libraries in external NaCl
|
||
|
apps.
|
||
|
|
||
|
Building and running Skia's Apps in NaCl (Experimental)
|
||
|
-------------------------------------------------------
|
||
|
|
||
|
It is possible to run some of Skia's console apps in the browser.
|
||
|
|
||
|
### Skia Unit Tests
|
||
|
|
||
|
Build Skia tests from the trunk directory:
|
||
|
|
||
|
platform_tools/nacl/bin/nacl_make tests
|
||
|
|
||
|
This will build the tests executable. We include a tiny HTTP server (borrowed
|
||
|
from the NaCl SDK) in order to run the apps:
|
||
|
|
||
|
cd platform_tools/nacl
|
||
|
./httpd.py
|
||
|
|
||
|
The HTTP server runs on port 5103 by default. In Chrome, navigate to
|
||
|
`http://localhost:5103/` and click on the link for "unit tests." After the
|
||
|
module downloads, you should see the tests begin to run.
|
||
|
|
||
|
### Sample App
|
||
|
|
||
|
The sample app relies on the GPU backend. Therefore, it will compile but will not yet run.
|
||
|
|
||
|
platform_tools/nacl/bin/nacl_make SampleApp
|
||
|
|
||
|
You can access the sample app at http://localhost:5103/SampleApp.
|
||
|
|
||
|
### Debugger
|
||
|
|
||
|
The debugger is currently in a partially-working state:
|
||
|
|
||
|
platform_tools/nacl/bin/nacl_make debugger
|
||
|
|
||
|
You can access it at http://localhost:5103/debugger.
|