aboutsummaryrefslogtreecommitdiff
path: root/src/ee/tools/ninja.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ee/tools/ninja.py')
-rw-r--r--src/ee/tools/ninja.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ee/tools/ninja.py b/src/ee/tools/ninja.py
index 7d73d8f..3df8796 100644
--- a/src/ee/tools/ninja.py
+++ b/src/ee/tools/ninja.py
@@ -1,5 +1,6 @@
import argparse
import os.path
+import pydoc
import sys
from pathlib import Path
from typing import List, Union
@@ -126,11 +127,27 @@ def generate(project: Project):
"default ee-reports\n",
])
+ # Hooks
+ hooks = [("odoo", "ee.odoo.generate_ninja")]
+ hook_fragments = {}
+ for name, function in hooks:
+ f = pydoc.locate(function)
+ hook_fragments[name] = f(project)
+
with ee_ninja.open("w") as f:
env = _create_env()
template = env.get_template("build.ninja.j2")
f.write(template.render(**params))
+ f.write("\n")
+ if len(hooks):
+ for name, _ in hooks:
+ f.write("# Hook: {}\n".format(name))
+ fragment_name = hook_fragments[name]
+ f.write(fragment_name)
+ if not fragment_name.endswith("\n"):
+ f.write("\n")
+
parser = argparse.ArgumentParser()
ee.tools.add_default_argparse_group(parser)