srctree

commits New Issue Suggest Diff

hastur

190 branchescss2: Fix consume_number eating an extra character 8 months ago200e8d8c
.github/
ci: Use libc++-19 in the clang-tidy job8 months ago
archive/
meta/clang-tidy: Make readability-identifier-naming accept fuzz tests 8 months ago
azm/
meta/clang-tidy: Enable bugprone-unchecked-optional-access 13 months ago
browser/
deps: Update to SFML 3 8 months ago
bzl/
ci: Run all fuzz tests11 months ago
css/
css: Drop no-longer-needed nolint8 months ago
css2/
css2: Fix consume_number eating an extra character 8 months ago
dom/
meta: Enable clang-tidy's misc-no-recursion lint8 months ago
engine/
style: Restructure the display property to support more values 9 months ago
etest/
etest: Print the test name even if the test crashes9 months ago
geom/
geom: Add a Rect::empty helper 17 months ago
gfx/
deps: Update to SFML 3 8 months ago
html/
html: Stop dropping all whitespace-only text nodes11 months ago
html2/
meta/clang-tidy: Make readability-identifier-naming accept fuzz tests 8 months ago
idna/
unicode: Adopt util/unicode.h11 months ago
img/
deps: Update to SFML 3 8 months ago
js/
etest: Drop no-longer-needed std::source_location-workaround12 months ago
layout/
meta/clang-tidy: Enable modernize-min-max-use-initializer-list 8 months ago
net/
meta/clang-tidy: Suppress warnings new in clang-tidy 19 8 months ago
os/
build: Support the wasi OS constraint 12 months ago
protocol/
protocol: Implement a simple in-memory cache 8 months ago
render/
meta: Enable clang-tidy's misc-no-recursion lint8 months ago
style/
meta/clang-tidy: Enable performance-unnecessary-value-param 8 months ago
third_party/
deps: Update to SFML 3 8 months ago
tui/
meta: Enable clang-tidy's misc-no-recursion lint8 months ago
type/
deps: Update to SFML 3 8 months ago
unicode/
meta: Enable clang-tidy's misc-no-recursion lint8 months ago
uri/
uri: Implement all comparison operators for Uri 8 months ago
url/
meta/clang-tidy: Suppress warnings new in clang-tidy 19 8 months ago
util/
meta/clang-tidy: Enable the init-variables check 11 months ago
wasm/
wasm/test: Improve test coverage 8 months ago
.bazelrc
deps: Update to SFML 3 8 months ago
.bazelrc.local.example
build: Drop support for Clang 14 code coverage1 years ago
.bazelversion
build: Update to Bazel 7.3.1 9 months ago
.clang-format
ci: Add pre-commit checks 1 years ago
.clang-tidy
meta/clang-tidy: Drop no-longer-needed cert-dcl21-cpp disable 8 months ago
.gitattributes
html2: Delete the simple_page test3 years ago
.gitignore
build: Make generating compile_commands.json more convenient 3 years ago
.gitlint
unicode: Split out pure unicode bits from //idna11 months ago
.pre-commit-config.yaml
ci: Update black, buildifier, codecov, pre-commit, and wasmtime 13 months ago
BUILD
meta: Make it possible to run clang-tidy using Bazel 1 years ago
LICENSE
Wrap license at 80 cols 3 years ago
README.md
ci: Drop support for Clang 14, 1512 months ago
WORKSPACE
deps: Update to SFML 3 8 months ago
codecov.yml
ci: Make the code coverage status required again8 months ago
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