inja: init at 3.4.0 (#312868)

Includes a packaging test with a simple cmake project.

authored by Sergei Zimmerman and committed by GitHub 14800786 ac41bab1

+86
+46
pkgs/by-name/in/inja/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchFromGitHub, 5 + cmake, 6 + nlohmann_json, 7 + doctest, 8 + callPackage, 9 + }: 10 + 11 + stdenv.mkDerivation (finalAttrs: { 12 + pname = "inja"; 13 + version = "3.4.0"; 14 + 15 + src = fetchFromGitHub { 16 + owner = "pantor"; 17 + repo = "inja"; 18 + rev = "v${finalAttrs.version}"; 19 + hash = "sha256-B1EaR+qN32nLm3rdnlZvXQ/dlSd5XSc+5+gzBTPzUZU="; 20 + }; 21 + 22 + nativeBuildInputs = [ cmake ]; 23 + propagatedBuildInputs = [ nlohmann_json ]; 24 + 25 + cmakeFlags = [ 26 + (lib.cmakeBool "INJA_BUILD_TESTS" finalAttrs.finalPackage.doCheck) 27 + (lib.cmakeBool "INJA_USE_EMBEDDED_JSON" false) 28 + (lib.cmakeBool "BUILD_BENCHMARK" false) 29 + ]; 30 + 31 + checkInputs = [ doctest ]; 32 + doCheck = true; 33 + 34 + passthru.tests = { 35 + simple-cmake = callPackage ./simple-cmake-test { }; 36 + }; 37 + 38 + meta = { 39 + changelog = "https://github.com/pantor/inja/releases/tag/v${finalAttrs.version}"; 40 + description = "Template engine for modern C++, loosely inspired by jinja for python"; 41 + homepage = "https://github.com/pantor/inja"; 42 + license = lib.licenses.mit; 43 + maintainers = with lib.maintainers; [ xokdvium ]; 44 + platforms = lib.platforms.all; 45 + }; 46 + })
+5
pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt
··· 1 + project(inja-simple-cmake-test LANGUAGES CXX) 2 + find_package(inja REQUIRED) 3 + add_executable(simple-cmake-test main.cpp) 4 + target_link_libraries(simple-cmake-test PRIVATE pantor::inja) 5 + install(TARGETS simple-cmake-test DESTINATION bin)
+27
pkgs/by-name/in/inja/simple-cmake-test/default.nix
··· 1 + { 2 + stdenv, 3 + cmake, 4 + inja, 5 + lib, 6 + }: 7 + 8 + stdenv.mkDerivation { 9 + name = "inja-simple-cmake-test"; 10 + src = lib.fileset.toSource { 11 + root = ./.; 12 + fileset = lib.fileset.unions [ 13 + ./main.cpp 14 + ./CMakeLists.txt 15 + ]; 16 + }; 17 + nativeBuildInputs = [ cmake ]; 18 + buildInputs = [ inja ]; 19 + doInstallCheck = true; 20 + installCheckPhase = '' 21 + if [[ `$out/bin/simple-cmake-test` != "Hello world!" ]]; then 22 + echo "ERROR: $out/bin/simple-cmake-test does not output 'Hello world!'" 23 + exit 1 24 + fi 25 + ''; 26 + meta.timeout = 30; 27 + }
+8
pkgs/by-name/in/inja/simple-cmake-test/main.cpp
··· 1 + #include <inja/inja.hpp> 2 + #include <iostream> 3 + #include <nlohmann/json.hpp> 4 + 5 + int main() { 6 + nlohmann::json data = {{"name", "world"}}; 7 + inja::render_to(std::cout, "Hello {{ name }}!", data); 8 + }