Yeah so it turns out meson supports splitting compound boolean logic over multiple lines. Duh. Of course it does.
Also enabled ubsan for CI example builds.
When building tests, Meson will now look for system dependencies and use
them if found. Otherwise, it will check if the submodules are cloned and
create a dependency object wrapping the include path of each external
dependency (this breaks Meson's sandbox, but the previous approach did
too). This also allows passing actual dependencies to the various build
targets instead of include paths (a bit more idiomatic).
I've also made it possible to skip the tl-optional tests when the lib is
not found, so that it is still possible to run tests even from a
tarball (i.e. no git checkout)
Windows containers in GitHub Actions are simply bad. While it is
possible to use them, it is a horrible hack with terrible usability.
It was a fun experiment, but I don't want anybody to maintain this mess,
especially when you can use a normal Windows image (less cool, bloated,
but well supported).
* build(meson): install CMake Config files to datadir
Since Meson doesn't yet support CMake's ARCH_INDEPENDENT option, a
pre-generated Package Version file is installed instead of generating it
at configure time.
I've also cleaned up a bit the nearby lines of code.
Fixes#140
* build(meson): don't hardcode include in CMake Config
also:
- fixed extended-precision fractional times causing parse error instead of truncating per the spec (closes#127)
- fixed some non-spec vertical whitespace being accepted as line breaks (closes#128)
- added `format_flags::allow_unicode_strings`
also:
- added `date_time` converting constructors from `date` and `time`
- added `is_key<>` and is_key_or_convertible<>` metafunctions
- exposed `TOML_NAMESPACE_START` and `TOML_NAMESPACE_END` macros to help with ADL specialization scenarios
- added encoder and decoder for `toml-test` (closes#125)
also:
- fixed parser not correctly round-tripping int format in some cases
- added `TOML_ENABLE_FORMATTERS` option
- added `operator->` to `toml::value`
- refactoring