[865] | 1 | Framsticks SDK in JavaScript |
---|
| 2 | ---------------------------- |
---|
| 3 | |
---|
| 4 | Note: Emscripten does not like spaces in paths. |
---|
| 5 | In order to compile the Framsticks SDK properly, ensure you don't have spaces in directory names. |
---|
| 6 | |
---|
| 7 | To generate the newest JavaScript version of the Framsticks SDK, you need to have the latest version |
---|
| 8 | of Emscripten installed. To perform a compilation, you first need to activate the Emscripten SDK: |
---|
| 9 | |
---|
| 10 | On Windows: |
---|
| 11 | emsdk.bat activate latest |
---|
| 12 | |
---|
| 13 | On Linux: |
---|
| 14 | emsdk activate latest |
---|
| 15 | |
---|
| 16 | The emsdk script should be available in your Emscripten install directory. |
---|
| 17 | "latest" can be replaced by any name of the Emscripten version installed. |
---|
| 18 | After activating the Emscripten SDK, to compile Framsticks SDK you need to call: |
---|
| 19 | |
---|
| 20 | On Windows: |
---|
| 21 | emmake.bat mingw32-make.exe -j8 --directory=../../cpp -f ../js/sdk/Makefile-SDK-Emscripten.mak |
---|
| 22 | |
---|
| 23 | On Linux: |
---|
| 24 | $EMSCRIPTEN/emmake make --directory=../../cpp -f ../js/sdk/Makefile-SDK-Emscripten.mak |
---|
| 25 | |
---|
| 26 | After completing this, the JavaScript version of Framsticks SDK should be available as frams-sdk.js. |
---|
| 27 | |
---|
| 28 | |
---|
| 29 | |
---|
| 30 | Classes, methods and fields available in JavaScript Framsticks SDK are defined in js_interface/js_interface.idl. |
---|
| 31 | To access them from a JavaScript app, you need to include the JavaScript version of Framsticks SDK file in HTML: |
---|
| 32 | <script src="sdk/frams-sdk.js"></script> |
---|
| 33 | |
---|
| 34 | and then you can access Framsticks classes in JavaScript files using the Module variable like that: |
---|
| 35 | let gcm = new Module.DefaultGenoConvManager(); |
---|
| 36 | gcm.addDefaultConverters(); |
---|
| 37 | let dummyGeno = new Module.Geno().useConverters(gcm); |
---|
| 38 | Module.destroy(dummyGeno); |
---|
| 39 | let validators = new Module.Validators(); |
---|
| 40 | dummyGeno = new Module.Geno().useValidators(validators); |
---|
| 41 | Module.destroy(dummyGeno); |
---|
| 42 | let modelValidator = new Module.ModelGenoValidator(); |
---|
| 43 | validators.append(modelValidator); |
---|