diff --git a/pkgs/development/libraries/toml11/default.nix b/pkgs/development/libraries/toml11/default.nix new file mode 100644 index 000000000000..641b72aa1e8c --- /dev/null +++ b/pkgs/development/libraries/toml11/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "toml11"; + version = "3.7.1"; + + src = fetchFromGitHub { + owner = "ToruNiina"; + repo = "toml11"; + rev = "v${finalAttrs.version}"; + hash = "sha256-HnhXBvIjo1JXhp+hUQvjs83t5IBVbNN6o3ZGhB4WESQ="; + }; + + nativeBuildInputs = [ + cmake + ]; + + meta = with lib; { + homepage = "https://github.com/ToruNiina/toml11"; + description = "TOML for Modern C++"; + longDescription = '' + toml11 is a C++11 (or later) header-only toml parser/encoder depending + only on C++ standard library. + + - It is compatible to the latest version of TOML v1.0.0. + - It is one of the most TOML standard compliant libraries, tested with + the language agnostic test suite for TOML parsers by BurntSushi. + - It shows highly informative error messages. + - It has configurable container. You can use any random-access containers + and key-value maps as backend containers. + - It optionally preserves comments without any overhead. + - It has configurable serializer that supports comments, inline tables, + literal strings and multiline strings. + - It supports user-defined type conversion from/into toml values. + - It correctly handles UTF-8 sequences, with or without BOM, both on posix + and Windows. + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +}) +# TODO [ AndersonTorres ]: tests diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 66f013098a8f..7eac3c6e11c9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22928,6 +22928,8 @@ with pkgs; tomlcpp = callPackage ../development/libraries/tomlcpp { }; + toml11 = callPackage ../development/libraries/toml11 { }; + tomlplusplus = callPackage ../development/libraries/tomlplusplus { }; tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };