tomlplusplus/CONTRIBUTING.md
Mark Gillard e260f2df79 minor compilation speed and binary size improvements
also:
- minor documentation fixes
2020-04-01 15:53:10 +03:00

2.2 KiB

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
    • 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
  2. Run python/generate_single_header.py

Building and running the tests

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:

git submodule update --init extern/Catch2
git submodule update --init extern/tloptional

Testing on Windows with Visual Studio

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 enabling Auto Detect runsettings Files (settings gear icon > Configure Run Settings).

Testing on Linux (and WSL)

Install meson and ninja if necessary, then test with both gcc and clang:

CXX=g++ meson build-gcc
CXX=clang++ meson build-clang
cd build-gcc && ninja && ninja test
cd ../build-clang && ninja && ninja test