You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for your interest in improving `libcpprime`.
4
+
5
+
## Development principles
6
+
7
+
- Keep the public API minimal and stable.
8
+
- Keep `include/libcpprime/` compatible with C++11 and older compiler versions in the supported matrix.
9
+
- Avoid compiler-specific behavior unless guarded and tested across compilers.
10
+
- If a change is breaking, call it out clearly in the PR description.
11
+
12
+
## Required tools
13
+
14
+
### Build and test
15
+
16
+
- CMake >= 3.20
17
+
- A C++ compiler toolchain (GCC/Clang/MSVC/clang-cl)
18
+
- Ninja
19
+
- Task (`go-task`)
20
+
- Git
21
+
22
+
### Python tooling (benchmarks/docs)
23
+
24
+
- Python >= 3.12
25
+
-`uv`
26
+
- pngquant
27
+
28
+
Python dependencies are managed by `uv`.
29
+
30
+
### Why Windows development is recommended
31
+
32
+
Windows development is recommended when contributing significant changes, because this repository validates both `msvc` and `clang-cl` in CI and those toolchains are easiest to reproduce locally on Windows.
33
+
34
+
However, since it is difficult to generate a proper Compilation database with MSVC and clang-cl, if you are developing on Windows, configuring with MinGW GCC or Clang is also required.
35
+
36
+
Linux/macOS development is still fine for day-to-day work, especially for GCC/Clang checks.
37
+
38
+
### Dev Container support
39
+
40
+
This repository includes a Dev Container at `.devcontainer/`.
41
+
Use it if you want a reproducible Linux environment without installing tools manually.
0 commit comments