diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-06 19:45:23 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-06 19:45:23 +0200 |
commit | bca53c2346fc07fcd9322fe42ad4e6e25f6fc3ad (patch) | |
tree | a1927d9cf60187852cbc2ec22e6bad1c3dc8c663 | |
parent | 0a3b339384b2b8dc98b470d5dee41fb1a93f2e7f (diff) | |
download | meson-bca53c2346fc07fcd9322fe42ad4e6e25f6fc3ad.zip meson-bca53c2346fc07fcd9322fe42ad4e6e25f6fc3ad.tar.gz meson-bca53c2346fc07fcd9322fe42ad4e6e25f6fc3ad.tar.bz2 |
Support for multiple backends.
-rwxr-xr-x | builder.py | 8 | ||||
-rwxr-xr-x | generators.py | 17 |
2 files changed, 21 insertions, 4 deletions
@@ -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() |