From d14dfe075cabb3a9f979e68cd00036b7b765b736 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de>
Date: Fri, 30 Jun 2023 15:14:38 +0200
Subject: [PATCH] fix(BrainScaleS build): Add missing dependency on inja

---
 packages/hxtorch/package.py          |  1 +
 packages/inja/package.py             | 27 +++++++++++++++++++++++++++
 packages/pynn-brainscales/package.py |  1 +
 3 files changed, 29 insertions(+)
 create mode 100644 packages/inja/package.py

diff --git a/packages/hxtorch/package.py b/packages/hxtorch/package.py
index bb40db59..2b2383ad 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 00000000..235ef31c
--- /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 65016e7f..8557135e 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'))
-- 
GitLab