diff options
author | Sergei Zimmerman <serjtsimmerman@gmail.com> | 2024-05-23 01:28:43 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-22 22:28:43 +0000 |
commit | 14800786a98bdf128daab60483afa3be51099361 (patch) | |
tree | 957852b30ec16ce37eeeb688c00b40c798377e48 /pkgs/by-name/in | |
parent | ac41bab16da69e1c8a909fa7c86e0a7d6035fc99 (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.nix | 46 | ||||
-rw-r--r-- | pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt | 5 | ||||
-rw-r--r-- | pkgs/by-name/in/inja/simple-cmake-test/default.nix | 27 | ||||
-rw-r--r-- | pkgs/by-name/in/inja/simple-cmake-test/main.cpp | 8 |
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); +} |