also:
- removed `TOML_LARGE_FILES`
- removed unnecessary template machinery (esp. where ostreams were involved)
- made all overloaded operators 'hidden friends'
- documentation fixes
- version bump - this will form the foundation of v3
- moved implementation-only headers to `/impl`
- replaced `[[nodiscard]]` with `TOML_NODISCARD`
- added `.clang-format` + applied to all files
also:
- added support for Unicode 14.0
- fixed minor documentation issues
- version bump (pre-emptive for next release)
List of things that this commit brings:
* Makes the project `FetchContent` ready
This is achieved by conditionally executing code that is only useful
for a consumer of the project, such as examples.
* Componentize the install rules
Because this is a header-only library, its install rules should be
categorized in a dev component (think foo-dev packages in apt). By
assigning all install rules to a component, the project no longer
clobbers the global component when vendored (see the previous point).
* Provide an interface similar to the install interface when vendored
This is achieved by adding SYSTEM to the include directories
conditionally and only providing targets that are actually needed.
* Make the project architecture independant
This is achieved by setting the ARCH_INDEPENDENT argument when
generating the version config file, which is available since CMake
3.14. This feature is intended to be used for header-only libraries.
* Misc changes for trivial packaging
The install rules are written in a way that allows package maintainers
to trivially package the project.
Co-authored-by: friendlyanon <friendlyanon@users.noreply.github.com>