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); |
---|