aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuilder.py8
-rwxr-xr-xgenerators.py17
2 files changed, 21 insertions, 4 deletions
diff --git a/builder.py b/builder.py
index 6341776..4c4510a 100755
--- a/builder.py
+++ b/builder.py
@@ -28,6 +28,7 @@ parser.add_option('--bindir', default='bin', dest='bindir')
parser.add_option('--includedir', default='include', dest='includedir')
parser.add_option('--datadir', default='share', dest='datadir')
parser.add_option('--mandir' , default='share/man', dest='mandir')
+parser.add_option('--generator', default='shell', dest='generator')
class BuilderApp():
@@ -73,7 +74,12 @@ class BuilderApp():
b = build.Build(env)
intr = interpreter.Interpreter(code, b)
intr.run()
- g = generators.ShellGenerator(b, intr)
+ if options.generator == 'shell':
+ g = generators.ShellGenerator(b, intr)
+ elif options.generator == 'ninja':
+ g = generators.NinjaGenerator(b, intr)
+ else:
+ raise RuntimeError('Unknown generator "%s".' % options.generator)
g.generate()
if __name__ == '__main__':
diff --git a/generators.py b/generators.py
index 8c1d547..168c4b6 100755
--- a/generators.py
+++ b/generators.py
@@ -43,16 +43,27 @@ def do_conf_file(src, dst, variables):
result.append(line)
open(dst, 'w').writelines(result)
-class ShellGenerator():
-
+class Generator():
def __init__(self, build, interp):
self.build = build
self.environment = build.environment
self.interpreter = interp
+ self.processed_targets = {}
+
+class NinjaGenerator(Generator):
+
+ def __init__(self, build, interp):
+ Generator.__init__(self, build, interp)
+
+ def generate(self):
+ pass
+
+class ShellGenerator(Generator):
+ def __init__(self, build, interp):
+ Generator.__init__(self, build, interp)
self.build_filename = 'compile.sh'
self.test_filename = 'run_tests.sh'
self.install_filename = 'install.sh'
- self.processed_targets = {}
def generate(self):
self.generate_compile_script()