An open API service indexing awesome lists of open source software.

https://github.com/sarumc/bds-sdk-generator

A utility for reconstructing symbols from the PDB into compilable C headers
https://github.com/sarumc/bds-sdk-generator

bedrock-dedicated-server cmake demangle-symbols docker llvm microsoft minecraft

Last synced: 12 months ago
JSON representation

A utility for reconstructing symbols from the PDB into compilable C headers

Awesome Lists containing this project

README

          

> [!WARNING]
> There is also a better utility for reconstructing structures and unions from the PDB into compilable C headers.

> I recommend you to "not use" bds-sdk-generator, unless you want to reformat by hand every-symbols you dumped from the PDB.
> Go check this [pdbexe](https://github.com/SaruMC/pdbexe) or wait until the next update of our tool.

# About
This repository concerns the generation of Minecraft Bedrock Dedicated Server (BDS) header files through the PDB file provided with the release of each BDS version.

## Compilation

### Local Build
To build this locally, you need to have LLVM and Clang installed on your machine. Refer to the LLVM documentation for more information.

Here's how you can download it on Ubuntu/Debian:

```shell
sudo apt-get update
sudo apt-get install llvm clang
```

Then, to compile the project:

```shell
mkdir -p build && cd build
cmake ..
make
```

### Docker Build
You can also use Docker to build this project, which ensures a consistent build environment. The provided Dockerfile installs all necessary dependencies and sets up the build environment.

To build the Docker image:

```shell
podman build --build-arg BDS_VERSION= -t bds-sdk-gen .
```

Replace `` with the desired BDS version you wish to use. For example, `1.16.201.02`.

To run the Docker container:

```shell
podman run --rm -v $(pwd)/bin:/usr/src/app/bin bds-sdk-gen
```

### Important Note

> [!IMPORTANT]
> Microsoft has decided to remove PDB files from the BDS sources as of the latest versions. As a result, we cannot generate headers for BDS versions released after the latest version available at https://mcbds.reh.tw/. Please ensure that you are using a compatible version available from this resource.