about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorMarkus Theil <theil.markus@gmail.com>2023-08-08 15:50:29 +0200
committerAnderson Torres <torres.anderson.85@protonmail.com>2023-08-11 19:27:43 +0000
commitaba5b377bfb5cfbc53fc30cf4f9b4fb9d2e0ec2b (patch)
treeb80265294598e4f7121845d28e05420169a88c10 /pkgs/development
parent0bd643d500f75c59d12b30f104c8c55c6f3821a6 (diff)
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 <theil.markus@gmail.com>
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/frozen/default.nix37
-rw-r--r--pkgs/development/libraries/frozen/meson.build19
2 files changed, 56 insertions, 0 deletions
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')