Commit Graph

183 Commits

Author SHA1 Message Date
Mark Gillard
6135deb6a3 added additional metafunctions
also:
- reduced bloat by removing unnecessary std::forwards and std::moves
- minor cleanup of example code
2021-05-21 14:28:45 +03:00
Evgeny Proydakov
7bf8c03f7a
Added CMake FetchContent + tar archive downloading (#103) 2021-05-21 11:14:05 +03:00
friendlyanon
a9262c672f
Modernize the CMake build files (#102)
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>
2021-05-20 22:03:35 +03:00
Mark Gillard
9c59810084 minor config fixes [skip ci] 2021-05-19 23:22:43 +03:00
Mark Gillard
1baad21734 removed <fstream> requirement for parse_file
also:
- fixed false-positive char_8 support detection on older compilers
- removed extraneous `TOML_API` declarations
2021-05-19 14:36:25 +03:00
Evgeny Proydakov
ac923d81bb
Added CMake FetchContent information 2021-05-19 13:24:25 +03:00
Mark Gillard
a29ecda102 fix crash with pathologically-nested inputs (closes #100)
also:
- fixed parse_result natvis
- added parse_result default constructor
- added nested value limit example to error printer
2021-05-18 01:39:01 +03:00
Mark Gillard
c4e00f9a56 fix conflict with Windows.h (closes #99) 2021-05-14 15:47:35 +03:00
Mark Gillard
dca69453f6 building warning-clean on VS 16.10.0 pre3
also:
- made tests build with /Wall on MSVC
- fixed minor documentation error
2021-05-12 00:48:53 +03:00
BeastLe9enD
1ab8d3d022
Bypass including Windows.h (MultiByteToWideChar/WideCharToMultiByte) (#98) 2021-05-10 18:13:54 +03:00
Mark Gillard
369b36d288 documentation fixes, redux 2021-05-09 19:27:08 +03:00
Mark Gillard
479a550ba7 documentation fixes 2021-05-06 15:56:36 +03:00
Mark Gillard
0fcbfbe655 fixed segfault JSON-formatting a failed parse_result (closes #96)
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
2021-05-06 14:28:29 +03:00
Mark Gillard
2cee913b6d fix spurious warnings with MSVC /Wall (fixes #94) 2021-04-23 00:51:25 +03:00
Mark Gillard
14682c1ece fixed TOML_CONSTEVAL breaking on VS 16.10.0pre2 (closes #93)
https://developercommunity.visualstudio.com/t/Erroneous-C7595-error-with-consteval-in/1404234
2021-04-21 15:36:25 +03:00
Mark Gillard
7a4993029e CI updates 2021-04-20 23:44:35 +03:00
Mark Gillard
f73fa187ef add missing badge images [skip ci] 2021-04-19 00:01:50 +03:00
Mark Gillard
53f29d9365 restructuring and minor refactoring
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
2021-04-18 22:58:41 +03:00
Claus Klein
dcfab29e70
add cmake files to build and install header only library (#85)
* add cmake build and install support

export cmake config package too

* enable bootstap build without cmake config package

cleanup cmake list file
2021-02-02 18:45:59 +02:00
Mark Gillard
b11f28af78 fixed dotted kvps being unable to add subtables (fixes #61)
also:
- fixed extremely weird linker error on linux ICC (fixes #83)
- added some missing GNU attributes
- added additional tests
2021-01-16 12:59:10 +02:00
Mark Gillard
5a9166bce8 Update TOML version for v1.0.0 release 🎉 2021-01-13 11:00:10 +02:00
Mark Gillard
3db1e4e331 minor refactoring to make ICC happy 2021-01-11 09:53:03 +02:00
Mark Gillard
18c269bfac fixed missing internal macro default 2021-01-10 11:08:30 +02:00
Mark Gillard
9be51e440a fixed missing blank lines between consecutive empty tables/A-o-T
also:
- added additional value() testsfor inf/nan
- added additional formatting tests
2021-01-07 12:06:26 +02:00
Mark Gillard
00e080f126 fix node::value() not retrieving inf and nan correctly 2021-01-05 17:34:18 +02:00
Mark Gillard
1ef6c0c6c8 update copyright year [skip ci] 2021-01-02 17:48:47 +02:00
Mark Gillard
4face4d5bf release 2.3.0 2020-12-29 11:22:22 +02:00
Mark Gillard
63ec393826 updated .editorconfig [skip ci] 2020-12-20 18:38:07 +02:00
Mark Gillard
bd1545a2f6 fixed compile failure on apple clang
also:
- updated conformance tests
- updated submodules
- updated windows test targets
2020-12-19 13:27:22 +02:00
Björn Schäpers
05f8b1f1cc
Make iterators real iterators (#77)
They were missing the iterator_category and thus could not be used with
some standard algorithms.
2020-12-18 18:08:15 +02:00
Mark Gillard
ea064da16d fixed useless cast warning on GCC10
also:
- removed 'evil macros' test file
- updated github templates
2020-12-15 13:39:58 +02:00
Mark Gillard
54d80bb43b fix formatter not correctly line wrapping in some circumstances 2020-12-10 13:21:37 +02:00
Mark Gillard
9ea4438fc4 disable global compiler flag when used as subproject (fixes #72) 2020-12-09 09:48:02 +02:00
Mark Gillard
d95ff4c04f disable <charconv> on emscripten (fixes #71) 2020-11-26 17:28:28 +02:00
Mark Gillard
022a5b3166 CI tuning 2020-11-07 11:48:21 +02:00
Mark Gillard
8d3390faa2 updated CI and doxygen scripts 2020-10-30 15:09:28 +02:00
Mark Gillard
74efbb5960 update issue templates [skip ci] 2020-10-23 15:10:03 +03:00
Mark Gillard
44c7da27d6 fixed toml::literals namespace ambiguity (closes #69) 2020-10-22 16:25:26 +03:00
Mark Gillard
5f3e01f71c fixed array iterator conversion error (closes #67)
also removed superfluous newline when print ing a table (closes #68)
2020-10-22 14:34:01 +03:00
Mark Gillard
30b756f993 fixed parser not handling overlong float literals correctly
also a few other edge cases (see #65)
2020-10-10 11:45:53 +03:00
Mark Gillard
33f7d732a1 fixed issue handling malformed utf-8 2020-10-10 00:30:12 +03:00
Mark Gillard
6255dd765c fixed issue handling malformed utf-8 at EOF (closes #65) 2020-10-09 23:49:06 +03:00
Mark Gillard
487011398a correct version numbers in dox 2020-10-09 12:30:02 +03:00
Mark Gillard
fe0ac89500 fixed parser memory leak (fixes #64)
also:
- build/infra improvements
- updated submodules
- updated conformance tests
- misc code review/refactors
- library version bump
- TOML version bump
2020-10-09 11:44:40 +03:00
rezahousseini
aca6327cd8
Rename Windows.h to windows.h for mingw-w64 (#63)
Co-authored-by: Reza Housseini <reza.housseini@mecos.com>
2020-09-30 16:14:25 +03:00
Raul Tambre
248e6031cf
meson: Install CMake and pkg-config files into architecture-independe… (#60)
toml++ is header-only so these should be installed into architecture-independent directories to allow them to be found for crosscompiling regardless of the architecture they were installed on.

Fixes #59.
2020-09-17 15:16:36 +03:00
Mark Gillard
bf26a88412 minor cleanup and code review 2020-09-13 14:02:29 +03:00
Mark Gillard
dc29f80a4d added value_flags
Allows controlling the output format of integers, and round-trips their format when serializing after parsing.
2020-09-06 13:01:14 +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
8ae2eecf71 Updated github templates [skip ci] 2020-09-01 20:16:54 +03:00