Commit Graph

16 Commits

Author SHA1 Message Date
Mark Gillard
2b770b19cc build system overhaul
Fixes #185
Fixes #186
2023-01-22 22:02:20 +02:00
Mark Gillard
e257fd8098 added toml_merger example
closes #155
2022-05-20 17:54:58 +03:00
Mark Gillard
2c5580c71d minor meson refactor
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.
2022-04-22 22:44:52 +03:00
Mark Gillard
1c26ce1dcf fixed UB in internal unicode machinery (closes #144)
also:
- updated conformance tests
- added ubsan options to meson.build
2022-02-26 18:07:11 +02:00
Andrea Pappacoda
36030cace8 build(meson): use system deps when avalable
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)
2022-02-17 22:45:07 +02:00
Andrea Pappacoda
029160c280 build(meson): add compile_library option 2022-02-12 22:04:16 +02:00
Mark Gillard
d9473b85da updated conformance tests 2022-01-02 21:35:26 +02:00
Mark Gillard
ad4ae98af0 added ASan to CI (closes #123)
also:
- made all wrapped array and table iterator internal conversions explicit
- minor example code refactoring
2021-11-25 20:20:22 +02:00
Mark Gillard
ff6f184d30 added parse_benchmark example
also:
- internal parser refactoring
2021-11-04 11:56:03 +02:00
Andrea Pappacoda
73870cef54
build(meson): general improvements and fixes (#115)
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
2021-09-22 09:47:15 +03:00
Mark Gillard
1381240e10 meson refactoring
- renamed options to `snake_case`
- tests, examples and cmake config now explicitly disabled when used as a subproject
- removed small_binaries (it's now implicit when building as release)
- added minimum meson version 0.53
2020-09-05 13:26:12 +03:00
Mark Gillard
0c2279d15a minor improvements to the wording of some error messages
also:
- added 'error_printer' example
2020-04-14 12:45:32 +03:00
Mark Gillard
0fbdc945bb fix examples breaking CI =/ 2020-04-14 08:45:24 +03:00
Mark Gillard
61304ac519 added toml_generator example 2020-04-14 08:25:03 +03:00
Mark Gillard
40ffee43fb added json_formatter
also:
- added `toml_version.h`
- added version number to toml.hpp
- added `node::visit()`
- added `table::empty()`
- added `array::empty()`
- added version number to `toml.hpp`
- added ostream operator overload for `source_position`
- added tests for string escape sequences
- added tests for + in bare keys (toml/issues/687)
- added tests for hexfloat literals (toml/issues/562)
- added c++20 char8_t detection to meson
- moved third party submodules to `/extern`
- refactored noexcept version of `parse_result` to be more useful
- refactored all code to 'mostly' stick to a 120 column limit
- fixed some minor stuff picked up by gcc9
2020-01-06 22:24:53 +02:00
Mark Gillard
930bf0ad58 new file: .circleci/config.yml
new file:   .editorconfig
new file:   .gitattributes
new file:   .gitignore
new file:   .gitmodules
new file:   LICENSE
new file:   README.md
new file:   examples/example.cpp
new file:   examples/example.toml
new file:   examples/meson.build
new file:   include/toml++/toml.h
new file:   include/toml++/toml_array.h
new file:   include/toml++/toml_common.h
new file:   include/toml++/toml_formatter.h
new file:   include/toml++/toml_node.h
new file:   include/toml++/toml_node_view.h
new file:   include/toml++/toml_parser.h
new file:   include/toml++/toml_table.h
new file:   include/toml++/toml_utf8.h
new file:   include/toml++/toml_utf8_generated.h
new file:   include/toml++/toml_value.h
new file:   meson.build
new file:   python/ci_single_header_check.py
new file:   python/generate_single_header.py
new file:   python/generate_unicode_functions.py
new file:   tests/catch2
new file:   tests/catch2.h
new file:   tests/lifetimes.cpp
new file:   tests/main.cpp
new file:   tests/meson.build
new file:   tests/parsing_arrays.cpp
new file:   tests/parsing_booleans.cpp
new file:   tests/parsing_comments.cpp
new file:   tests/parsing_dates_and_times.cpp
new file:   tests/parsing_floats.cpp
new file:   tests/parsing_integers.cpp
new file:   tests/parsing_key_value_pairs.cpp
new file:   tests/parsing_spec_example.cpp
new file:   tests/parsing_strings.cpp
new file:   tests/parsing_tables.cpp
new file:   tests/tests.cpp
new file:   tests/tests.h
new file:   toml.hpp
new file:   vs/.runsettings
new file:   vs/example.vcxproj
new file:   vs/test_char.vcxproj
new file:   vs/test_char8.vcxproj
new file:   vs/test_char8_noexcept.vcxproj
new file:   vs/test_char_noexcept.vcxproj
new file:   vs/test_strict_char.vcxproj
new file:   vs/test_strict_char8.vcxproj
new file:   vs/test_strict_char8_noexcept.vcxproj
new file:   vs/test_strict_char_noexcept.vcxproj
new file:   vs/toml++.natvis
new file:   vs/toml++.props
new file:   vs/toml++.sln
new file:   vs/toml++.vcxproj
new file:   vs/toml++.vcxproj.filters
2020-01-04 16:21:38 +02:00