diff --git a/packages/hxtorch/package.py b/packages/hxtorch/package.py
index bb40db59cd68b910c7f37e6a7ad42b576406c7a6..2b2383ad8444961570b06680a15924374107ef9d 100644
--- a/packages/hxtorch/package.py
+++ b/packages/hxtorch/package.py
@@ -28,6 +28,7 @@ class Hxtorch(WafPackage):
     depends_on('genpybind@ebrains', type=('build', 'link', 'run'))
     depends_on('gflags', type=('build', 'link', 'run'))
     depends_on('googletest@1.11.0:+gmock', type=('build', 'link', 'run')) # variadic templates needed
+    depends_on('inja', type=('build', 'link', 'run')) # template engine for PPU source jit generation
     depends_on('intel-tbb', type=('build', 'link', 'run'))  # ppu gdbserver
     depends_on('libelf', type=('build', 'link', 'run'))
     depends_on('liblockfile', type=('build', 'link', 'run'))
diff --git a/packages/inja/package.py b/packages/inja/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..235ef31c54eb3a4bc983ca0f197a23741471a956
--- /dev/null
+++ b/packages/inja/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Inja(CMakePackage):
+    """Inja is a template engine for modern C++, loosely inspired by jinja for
+    python."""
+
+    homepage = "https://github.com/pantor/inja"
+    url      = "https://github.com/pantor/inja/archive/refs/tags/v3.3.0.tar.gz"
+
+    version('3.3.0', sha256='e628d994762dcdaa9a97f63a9b8b73d9af51af0ffa5acea6bdbba0aceaf8ee25')
+
+    depends_on('nlohmann-json@3.8.0:')
+
+    def cmake_args(self):
+        args = [
+            '-DINJA_USE_EMBEDDED_JSON:BOOL=OFF',
+            '-DINJA_BUILD_TESTS:BOOL=OFF',
+            '-DBUILD_BENCHMARK:BOOL=OFF',
+            '-DCOVERALLS:BOOL=OFF',
+        ]
+        return args
diff --git a/packages/pynn-brainscales/package.py b/packages/pynn-brainscales/package.py
index 65016e7f1cb0e2aa648ffc663c6ca64698279d6b..8557135e70673c529de185bf48fb8485a406b534 100644
--- a/packages/pynn-brainscales/package.py
+++ b/packages/pynn-brainscales/package.py
@@ -27,6 +27,7 @@ class PynnBrainscales(WafPackage):
     depends_on('genpybind@ebrains', type=('build', 'link', 'run'))
     depends_on('gflags', type=('build', 'link', 'run'))
     depends_on('googletest@1.11.0:+gmock', type=('build', 'link', 'run')) # variadic templates needed
+    depends_on('inja', type=('build', 'link', 'run')) # template engine for PPU source jit generation
     depends_on('intel-tbb', type=('build', 'link', 'run'))  # ppu gdbserver
     depends_on('libelf', type=('build', 'link', 'run'))
     depends_on('liblockfile', type=('build', 'link', 'run'))