- 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)
This improves user experience when using tomlplusplus as a Meson
subproject.
With this change users will be able to simply call
dependency('tomlplusplus') and have Meson automatically resolve the
dependency from the subproject if it is not found on the system.
Without this, users always have to explicitly call
dependency('tomlplusplus', fallback:['tomlplusplus','tomlplusplus_dep'])
A lot of saved keystrokes :)
Use the / operator instead of join_paths
Use the / operator instead of using "/" in string paths
Use the includedir opt instead of hardcoding "include" in install_subdir
Remove discouraged layout=flat option (mesonbuild/meson#9243)
Remove unneeded Wextra, Wpedantic flags, already added by warning_level
Remove manual -Oz flag when using Clang (mesonbuild/meson#9286)
Make use of : in kwargs consistent
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>
also:
- fixed config error in example `.vcxproj` files
- fixed spurious newline after JSON formatting a table
- fixed VS intellisense not detecting TOML_COMPILER_EXCEPTIONS correctly
- moved `parse_result` to a separate header
- made more internal macros require semicolons
- removed some old deprecations
- minor documentation fixes
There's no new functionality here. It's purely tooling + CI stuff:
- moved `python` => `tools`
- moved documentation images to subfolder
- moved `vs/tests` to tests/vs projects
- moved `vs` solution etc to root
- added semicolons to macros
- added cpp.hint to help VS intellisense
- migrated documentation generation to external lib