Reputation: 1168
What does it take to build a Native Client app from scratch? I have looked into the documentation, and fiddled with several apps, however, I am now moving onto making my own app and I don't see anything related to creating the foundation of a native client app.
Upvotes: 3
Views: 1279
Reputation: 634
Depending on the version of the SDK you want to use, you have a couple of options.
Pepper 16 and 17: use init_project.py or use an example as a starting point
If you are using pepper_16
or pepper_17
, you will find a Python script init_project.py
in the project_templates
in the SDK. It will setup up a complete set of files (.cc, .html, .nmf) with comments indicating where you need to add code. Run python init_project.py -h
to see what options it accepts. Additional documentation can be found at https://developers.google.com/native-client/pepper17/devguide/tutorial.
Pepper 18 and newer: use an example as the starting point
If you are using pepper_18
or newer, init_project.py
is no longer included. Instead you can copy a very small example from the examples
directory (e.g., hello_world_glibc
or hello_world_newlib
for C or hello_world_interactive
for C++) and use that as a starting point.
Writing completely from scratch
If you want to write your app completely from scratch, first ensure that the SDK is working by compiling and running a few of the examples. Then a good next step is to look at the classes pp::Module and pp:Instance, which your app will need to implement.
On the HTML side, write a simple page with the EMBED
element for the Native Client module. Then add the JavaScript event handlers for loadstart
, progress
, error
, abort
, load
, loadend
, and message
and have the handlers write the event data to, e.g., the JavaScript console, so that it's possible to tell what went wrong if the Native Client module didn't load. The load_progress
example shows how to do this.
Next, create the manifest file (.nmf
). From pepper_18
and onwards you can use the generate_nmf.py
script found in the tools/
directory for this. If you want to write it from scratch, the examples provide examples both for using newlib
and glibc
(the two Standard C librares currently supported). See hello_world_newlib/
and hello_world_glibc/
, respectively.
If you haven't used a gcc-family compiler before, it is also a good idea to look at the Makefile for some of the examples to see what compiler and linker flags to use. Compiling both for 32-bit and 64-bit right from the beginning is recommended.
Upvotes: 7
Reputation: 793
Easiest way is to follow the quick start doc at https://developers.google.com/native-client/pepper18/quick-start, in particular steps 5-7 of the tutorial ( https://developers.google.com/native-client/pepper18/devguide/tutorial ) which seems to be what you are asking about.
Upvotes: 0