mirror of
https://github.com/marzer/tomlplusplus.git
synced 2025-02-23 18:40:04 +00:00
Added CONTRIBUTING.md [skip ci]
This commit is contained in:
parent
7cb2e76323
commit
2853049d6a
46
CONTRIBUTING.md
Normal file
46
CONTRIBUTING.md
Normal file
@ -0,0 +1,46 @@
|
||||
# Contributing to toml++
|
||||
Contributions are very welcome! Either by [reporting issues] or submitting pull requests.
|
||||
If you wish to submit a PR, please be aware that:
|
||||
- The single-header file `toml.hpp` is generated by a script; make your changes in the files in
|
||||
`include`, **not** in `toml.hpp`.
|
||||
- Your changes should compile warning-free on at least one of gcc 8.3.0, clang 8.0, and MSVC 19.2X
|
||||
(Visual Studio 2019). All three is a bonus.
|
||||
- You should regenerate the single-header file as part of your PR (a CI check will fail if you don't).
|
||||
|
||||
### Regenerating toml.hpp
|
||||
1. Make your changes as necessary
|
||||
2. If you've added a new header file that isn't going to be transitively included by one of the
|
||||
others, add an include directive to `include/toml++/toml.h`
|
||||
3. Run `python/generate_single_header.py`
|
||||
|
||||
### Building and testing
|
||||
Testing is done using [Catch2], included in the respository as a submodule under `extern/Catch2`.
|
||||
The first time you want to begin testing you'll need to ensure submodules have been fetched:
|
||||
```bash
|
||||
git submodule update --init --recursive extern/Catch2
|
||||
```
|
||||
|
||||
#### Windows
|
||||
|
||||
Install [Visual Studio 2019] and [Test Adapter for Catch2], then open `vs/toml++.sln` and build the
|
||||
projects in the `tests` solution folder. Visual Studio's Test Explorer should pick these up and
|
||||
allow you to run the tests directly.
|
||||
|
||||
If test discovery fails you can usually fix it by clicking enabling
|
||||
`Auto Detect runsettings Files` (settings gear icon > `Configure Run Settings`).
|
||||
|
||||
#### Linux
|
||||
Install [meson] and [ninja] if necessary, then test with both gcc and clang:
|
||||
```bash
|
||||
CXX=g++ meson build-gcc
|
||||
CXX=clang++ meson build-clang
|
||||
cd build-gcc && ninja && ninja test
|
||||
cd ../build-clang && ninja && ninja test
|
||||
```
|
||||
|
||||
[Visual Studio 2019]: https://visualstudio.microsoft.com/vs/
|
||||
[Test Adapter for Catch2]: https://marketplace.visualstudio.com/items?itemName=JohnnyHendriks.ext01
|
||||
[reporting issues]: https://github.com/marzer/tomlplusplus/issues
|
||||
[Catch2]: https://github.com/catchorg/Catch2
|
||||
[meson]: https://mesonbuild.com/Getting-meson.html
|
||||
[ninja]: https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages
|
Loading…
x
Reference in New Issue
Block a user