diff options
Diffstat (limited to 'meson.py')
-rwxr-xr-x | meson.py | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -28,6 +28,7 @@ parser = argparse.ArgumentParser() backendlist = ['ninja', 'vs2010', 'xcode'] build_types = ['plain', 'debug', 'debugoptimized', 'release'] +layouts = ['mirror', 'flat'] warning_levels = ['1', '2', '3'] default_warning = '1' @@ -71,6 +72,8 @@ parser.add_argument('--unity', action='store_true', dest='unity', default=False, help='unity build') parser.add_argument('--werror', action='store_true', dest='werror', default=False,\ help='Treat warnings as errors') +parser.add_argument('--layout', choices=layouts, dest='layout', default='mirror',\ + help='Build directory layout.') parser.add_argument('--warnlevel', default=default_warning, dest='warning_level', choices=warning_levels,\ help='Level of compiler warnings to use (larger is more, default is %(default)s)') parser.add_argument('--cross-file', default=None, dest='cross_file', @@ -141,24 +144,24 @@ itself as required.''' else: mlog.log('Build type:', mlog.bold('native build')) b = build.Build(env) - intr = interpreter.Interpreter(b) - mlog.log('Build machine cpu:', mlog.bold(intr.builtin['build_machine'].cpu_method([], {}))) if env.is_cross_build(): mlog.log('Host machine cpu:', mlog.bold(intr.builtin['host_machine'].cpu_method([], {}))) mlog.log('Target machine cpu:', mlog.bold(intr.builtin['target_machine'].cpu_method([], {}))) - intr.run() if self.options.backend == 'ninja': import ninjabackend - g = ninjabackend.NinjaBackend(b, intr) + g = ninjabackend.NinjaBackend(b) elif self.options.backend == 'vs2010': import vs2010backend - g = vs2010backend.Vs2010Backend(b, intr) + g = vs2010backend.Vs2010Backend(b) elif self.options.backend == 'xcode': import xcodebackend - g = xcodebackend.XCodeBackend(b, intr) + g = xcodebackend.XCodeBackend(b) else: raise RuntimeError('Unknown backend "%s".' % self.options.backend) - g.generate() + intr = interpreter.Interpreter(b, g) + mlog.log('Build machine cpu:', mlog.bold(intr.builtin['build_machine'].cpu_method([], {}))) + intr.run() + g.generate(intr) env.generating_finished() dumpfile = os.path.join(env.get_scratch_dir(), 'build.dat') pickle.dump(b, open(dumpfile, 'wb')) |