Right now GCC 13, Clang 17, and MSVC are tested against. The project makes use of C++23 features, so a reasonably recent compiler is required.
Bazel is used as the build system. I recommend using
Bazelisk as that will pick up the Bazel version to use from the
.bazelversion
file in the repository root.
Per-developer configuration (e.g. compiler used and build type) is managed in
a gitignored .bazelrc.local
file. To set this up for your environment, copy
.bazelrc.local.example
to .bazelrc.local
and edit to suit your compiler of
choice.
The following assumes that you either have Bazel or Bazelisk under the name
bazel
on your PATH
and that you have set up your .bazelrc.local
file.
bazel query //...
bazel build //...
bazel build //html
bazel test //...
bazel run //browser
bazel run refresh_compile_commands --@rules_python//python/config_settings:bootstrap_impl=system_python
If using clangd on Windows, you need work around clangd not supporting
/std:c++latest by setting up a .clangd
configuration
containing
CompileFlags:
Add: ["-std:c++latest"]
to force its inclusion and avoid your editor displaying errors for every newish C++ feature.