minecraft-pi-docker/docs/BUILDING.md

74 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

2021-06-17 21:32:24 +00:00
# Building
## Build Options
* ``MCPI_BUILD_MODE``
* ``arm``: Only Build ARM Components
* ``native``: Only Build Native Components
* ``both`` (Default): Build Both ARM And Native Components For ARM
* ``MCPI_SERVER_MODE``
* ``ON``: Enable Server Mode
* ``OFF`` (Default): Disable Server Mode
2021-08-27 02:52:18 +00:00
* ``MCPI_HEADLESS_MODE``
* ``ON`` (Default In Server Mode): Enable Headless Mode
* ``OFF`` (Default In Client Mode): Disable Headless Mode
2021-06-17 21:32:24 +00:00
* ``MCPI_USE_MEDIA_LAYER_PROXY``
* ``ON``: Enable The Media Layer Proxy
* ``OFF`` (Default): Disable The Media Layer Proxy
## Build Dependencies
* Common
* ARM Compiler
* Host Compiler (Clang)
* CMake
* Host Architecture Dependencies
* Client Mode Only
* GLFW
* FreeImage
2021-09-12 03:18:12 +00:00
* OpenAL
2021-06-17 21:32:24 +00:00
## Runtime Dependencies
* Non-ARM Host Architectures
2021-12-18 02:04:05 +00:00
* QEMU User-Mode
2021-06-17 21:32:24 +00:00
* Host Architecture Dependencies
* CLient Mode Only
* OpenGL ES 1.1
* GLFW
* FreeImage
2021-09-12 03:18:12 +00:00
* OpenAL
2021-06-17 21:32:24 +00:00
* Zenity
## Two-Step Build
Use this when the host architecture is not ARM.
```sh
# Create Build Directory
mkdir build && cd build
# Build ARM Components
mkdir arm && cd arm
2021-12-17 23:19:23 +00:00
cmake -DCMAKE_TOOLCHAIN_FILE=../../cmake/armhf-toolchain.cmake -DMCPI_BUILD_MODE=arm ../..
2021-06-17 21:32:24 +00:00
make -j$(nproc) && sudo make install
2021-09-22 02:15:04 +00:00
cd ../
2021-06-17 21:32:24 +00:00
# Build Native Components
mkdir native && cd native
cmake -DMCPI_BUILD_MODE=native ../..
make -j$(nproc) && sudo make install
2021-09-22 02:15:04 +00:00
cd ../../
2021-06-17 21:32:24 +00:00
```
2021-09-22 02:21:53 +00:00
This will most likely not compile by itself. You will want to enable either server mode or the Media Layer Proxy.
2021-06-17 21:32:24 +00:00
## One-Step Build
Use this when the host architecture is ARM.
```sh
# Create Build Directory
mkdir build && cd build
# Build
cmake ..
make -j$(nproc) && sudo make install
2021-09-22 02:15:04 +00:00
cd ../
2021-06-17 21:32:24 +00:00
```