Unverified Commit 14800786 authored by Sergei Zimmerman's avatar Sergei Zimmerman Committed by GitHub
Browse files

inja: init at 3.4.0 (#312868)

Includes a packaging test with a simple cmake project.
parent ac41bab1
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
{
  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;
  };
})
+5 −0
Original line number Diff line number Diff line
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)
+27 −0
Original line number Diff line number Diff line
{
  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;
}
+8 −0
Original line number Diff line number Diff line
#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);
}