From 8a31fb772ba1a27ddff7bc3a042176653d6cc7ef Mon Sep 17 00:00:00 2001 From: Markus Theil Date: Tue, 8 Aug 2023 15:50:29 +0200 Subject: [PATCH] frozen: init at unstable-2021-02-23 frozen is a small JSON parser and generator library, targeted at embedded use-cases. As it only uses two source files, add meson.build on the fly to enable cross compilation. Signed-off-by: Markus Theil --- pkgs/development/libraries/frozen/default.nix | 37 +++++++++++++++++++ pkgs/development/libraries/frozen/meson.build | 19 ++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 58 insertions(+) create mode 100644 pkgs/development/libraries/frozen/default.nix create mode 100644 pkgs/development/libraries/frozen/meson.build diff --git a/pkgs/development/libraries/frozen/default.nix b/pkgs/development/libraries/frozen/default.nix new file mode 100644 index 0000000000000..f6e58991a590d --- /dev/null +++ b/pkgs/development/libraries/frozen/default.nix @@ -0,0 +1,37 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +}: + +stdenv.mkDerivation rec { + pname = "frozen"; + # pin to a newer release if frozen releases again, see cesanta/frozen#72 + version = "unstable-2021-02-23"; + + src = fetchFromGitHub { + owner = "cesanta"; + repo = "frozen"; + rev = "21f051e3abc2240d9a25b2add6629b38e963e102"; + hash = "sha256-BpuYK9fbWSpeF8iPT8ImrV3CKKaA5RQ2W0ZQ03TciR0="; + }; + + nativeBuildInputs = [ meson ninja ]; + + # frozen has a simple Makefile and a GN BUILD file as building scripts. + # Since it has only two source files, the best course of action to support + # cross compilation is to create a small meson.build file. + # Relevant upstream issue: https://github.com/cesanta/frozen/pull/71 + preConfigure = '' + cp ${./meson.build} meson.build + ''; + + meta = { + homepage = "https://github.com/cesanta/frozen"; + description = "Minimal JSON parser for C, targeted for embedded systems"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ thillux ]; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/development/libraries/frozen/meson.build b/pkgs/development/libraries/frozen/meson.build new file mode 100644 index 0000000000000..1db9546491cea --- /dev/null +++ b/pkgs/development/libraries/frozen/meson.build @@ -0,0 +1,19 @@ +project( + 'frozen', + 'c', + default_options: [ + 'c_args=-Wextra -fno-builtin -pedantic', + 'c_std=c99', + 'werror=true' + ], + license: 'Apache-2.0', + version: '20210223' +) + +library( + 'frozen', + 'frozen.c', + install: true +) + +install_headers('frozen.h') diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 98f289125e560..86ab1f69bf2d7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21178,6 +21178,8 @@ with pkgs; fribidi = callPackage ../development/libraries/fribidi { }; + frozen = callPackage ../development/libraries/frozen { }; + funambol = callPackage ../development/libraries/funambol { }; function-runner = callPackage ../development/web/function-runner { };