Files
flatbuffers/docs/source/building.md
2025-01-09 20:13:24 -08:00

81 lines
1.4 KiB
Markdown

# Building
## Building with CMake
The distribution main build system is configured by
[`cmake`](https://www.cmake.org) which allows you to build the project for any
platform.
### Configuration
Use `cmake` to configure a project based on your environment and platform.
=== "Unix"
```sh
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
```
!!! note
To use `clang` instead of `gcc` you may need to set prepend some
environment variables e.g. `CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake
-G "Unix MakeFiles"`
=== "Windows"
```sh
cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release
```
=== "MacOS"
```sh
cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release
```
#### Strict Mode
By default, `cmake` will configure targets to **not** build with strict warnings
on (e.g. `-Werror` or `/WX`). This may cause into issues when submitting code
changes since our CI requires the code to compile in strict mode.
To enable the extra warnings, turn on strict mode with the
`FLATBUFFERS_STRICT_MODE` cmake option.
```cmake
cmake -DFLATBUFFERS_STRICT_MODE=ON
```
### Building
Once the project files are generated, build as normal for your platform.
=== "Unix"
```sh
make -j
```
=== "Windows"
```sh
msbuild.exe FlatBuffers.sln
```
=== "MacOS"
```sh
xcodebuild -toolchain clang -configuration Release
```
## Building with Bazel
## Building with VCPKG