srctree

commits New Issue Suggest Diff

hastur

190 branchescss2: Fix consume_number eating an extra character 8 months ago200e8d8c
..

unable to find this file

README.md

Toy browser engine

[![codecov](https://codecov.io/gh/robinlinden/hastur/branch/master/graph/badge.svg?token=1H16FDJ3ML)][codecov]

Building

Requirements

Compiler

Right now GCC 12, Clang 16, and MSVC are tested against. The project makes useof C++23 features, so a reasonably recent compiler is required.

Build system

[Bazel][bazel] is used as the build system. I recommend using[Bazelisk][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 ina gitignored .bazelrc.local file. To set this up for your environment, copy.bazelrc.local.example to .bazelrc.local and edit to suit your compiler ofchoice.

Process

The following assumes that you either have Bazel or Bazelisk under the namebazel on your PATH and that you have set up your .bazelrc.local file.

Listing build targets

bazel query //...

Building all targets

bazel build //...

Building a single target

bazel build //html

Running all tests

bazel test //...

Running the browser engine

bazel run //browser

Generate json compilation database

bazel run refresh_compile_commands

Misc

clangd on Windows

If using clangd on Windows, you need work around [clangd not supporting/std:c++latest][clangd-on-windows] by setting up a .clangd configurationcontaining

CompileFlags: Add: ["-std:c++latest"]

to force its inclusion and avoid your editor displaying errors for every newishC++ feature.

[bazel]: https://bazel.build[bazelisk]: https://github.com/bazelbuild/bazelisk[clangd-on-windows]: https://github.com/clangd/clangd/issues/527[codecov]: https://app.codecov.io/gh/robinlinden/hastur