Add: Overlay cargo icon in vehicle/depot list when holding shift+ctrl. (#12938)
[openttd-github.git] / os / emscripten / README.md
blobcdc038ade36d839eee0828cfc928b26fdab1dd21
1 ## How to build with Emscripten
3 Please use docker with the supplied `Dockerfile` to build for emscripten.
4 It takes care of a few things:
5 - Use a version of emscripten we know works.
6 - Add LibLZMA library under contrib ports.
8 First, build the docker image by navigating in the folder this `README.md` is in, and executing:
9 ```
10   docker build -t emsdk-openttd .
11 ```
13 Next, navigate back to the root folder of this project.
15 Now we build the host tools first:
16 ```
17   mkdir build-host
18   docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build-host emsdk-openttd cmake .. -DOPTION_TOOLS_ONLY=ON
19   docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build-host emsdk-openttd make -j$(nproc) tools
20 ```
22 Finally, we build the actual game:
23 ```
24   mkdir build
25   docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build emsdk-openttd emcmake cmake .. -DHOST_BINARY_DIR=../build-host -DCMAKE_BUILD_TYPE=Release -DOPTION_USE_ASSERTS=OFF
26   docker run -it --rm -v $(pwd):$(pwd) -u $(id -u):$(id -g) --workdir $(pwd)/build emsdk-openttd emmake make -j$(nproc)
27 ```
29 In the `build` folder you will now see `openttd.html`.
31 To run it locally, you would have to start a local webserver; something like:
33 ```
34   cd build
35   python3 -m http.server
36 ````
38 You can now play the game via http://127.0.0.1:8000/openttd.html .