Skip to content

Latest commit

 

History

History
64 lines (48 loc) · 2.21 KB

README.md

File metadata and controls

64 lines (48 loc) · 2.21 KB

LISE WebAssembly (Work In Progress)

The purpose of this project is to create a very basic minimal CMake project able to compile C++ program using emscripten with the following features enabled:

  • Linking to external C++ library crosscompiled to JS file
  • Using bindings created via Embind
  • Preloading assets files
  • Sample OpenGL stack to get going

Requirements

See the WebAssembly setup to get all the requirements.

What you will need

  • Python 2.7
  • C++ Compiler
  • CMake
  • Emscripten

Install

Start by cloning this repository, making sure to pass the --recursive flag to grab all the dependencies. If you forgot, then you can git submodule update --init instead.

How to use

  1. Setup project ./setup.sh - this will build and compile the libraries
  2. Build project ./build.sh - this will build the project
  3. See output in dist/index.html

Note: there is no wasm loader at this time, see example output or modify output from client.js to client.html

You can also view the example by unzipping example.zip.

Tech Stack

Functionality Library
Mesh Loading assimp
Physics bullet
OpenGL Function Loader glad
Windowing and Input glfw
OpenGL Mathematics glm
Texture Loading stb

TODO

  • CMake Conversion
  • Embind
  • Passing Emscripten Arguments
  • Support uploading files
  • Provide example WASM output
  • WASM Output (requires loader file)
  • Sample Vendor Compiling
  • Sample Vendor Runtime
  • Select OpenGL libraries
  • Script to build LLVM libraries
  • Sample JavaScript Application
  • Convert bash scripts in CMake (I suck at CMake)
  • JavaScript Loader
  • Select Architecture
  • Document Architecture
  • C++ Unit Testing Setup with Google Test
  • Platform to support Web & Native