about summary refs log tree commit diff
path: root/pkgs/by-name/in
diff options
context:
space:
mode:
authorSergei Zimmerman <serjtsimmerman@gmail.com>2024-05-23 01:28:43 +0300
committerGitHub <noreply@github.com>2024-05-22 22:28:43 +0000
commit14800786a98bdf128daab60483afa3be51099361 (patch)
tree957852b30ec16ce37eeeb688c00b40c798377e48 /pkgs/by-name/in
parentac41bab16da69e1c8a909fa7c86e0a7d6035fc99 (diff)
inja: init at 3.4.0 (#312868)
Includes a packaging test with a simple cmake project.
Diffstat (limited to 'pkgs/by-name/in')
-rw-r--r--pkgs/by-name/in/inja/package.nix46
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt5
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/default.nix27
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/main.cpp8
4 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/by-name/in/inja/package.nix b/pkgs/by-name/in/inja/package.nix
new file mode 100644
index 0000000000000..01310b2aac143
--- /dev/null
+++ b/pkgs/by-name/in/inja/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  nlohmann_json,
+  doctest,
+  callPackage,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "inja";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "pantor";
+    repo = "inja";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-B1EaR+qN32nLm3rdnlZvXQ/dlSd5XSc+5+gzBTPzUZU=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ nlohmann_json ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "INJA_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "INJA_USE_EMBEDDED_JSON" false)
+    (lib.cmakeBool "BUILD_BENCHMARK" false)
+  ];
+
+  checkInputs = [ doctest ];
+  doCheck = true;
+
+  passthru.tests = {
+    simple-cmake = callPackage ./simple-cmake-test { };
+  };
+
+  meta = {
+    changelog = "https://github.com/pantor/inja/releases/tag/v${finalAttrs.version}";
+    description = "Template engine for modern C++, loosely inspired by jinja for python";
+    homepage = "https://github.com/pantor/inja";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ xokdvium ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt b/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt
new file mode 100644
index 0000000000000..68018e113924e
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt
@@ -0,0 +1,5 @@
+project(inja-simple-cmake-test LANGUAGES CXX)
+find_package(inja REQUIRED)
+add_executable(simple-cmake-test main.cpp)
+target_link_libraries(simple-cmake-test PRIVATE pantor::inja)
+install(TARGETS simple-cmake-test DESTINATION bin)
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/default.nix b/pkgs/by-name/in/inja/simple-cmake-test/default.nix
new file mode 100644
index 0000000000000..347563d471a65
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/default.nix
@@ -0,0 +1,27 @@
+{
+  stdenv,
+  cmake,
+  inja,
+  lib,
+}:
+
+stdenv.mkDerivation {
+  name = "inja-simple-cmake-test";
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./main.cpp
+      ./CMakeLists.txt
+    ];
+  };
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ inja ];
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ `$out/bin/simple-cmake-test` != "Hello world!" ]]; then
+      echo "ERROR: $out/bin/simple-cmake-test does not output 'Hello world!'"
+      exit 1
+    fi
+  '';
+  meta.timeout = 30;
+}
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/main.cpp b/pkgs/by-name/in/inja/simple-cmake-test/main.cpp
new file mode 100644
index 0000000000000..4ec66678d2b7f
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/main.cpp
@@ -0,0 +1,8 @@
+#include <inja/inja.hpp>
+#include <iostream>
+#include <nlohmann/json.hpp>
+
+int main() {
+  nlohmann::json data = {{"name", "world"}};
+  inja::render_to(std::cout, "Hello {{ name }}!", data);
+}