diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-02 00:00:24 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-02 00:00:24 +0200 |
commit | 8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9 (patch) | |
tree | b10862c7e22f085fb87a770a24f8f4f14d42714f /shellgenerator.py | |
parent | 53cddaec8cf8af941d1c2d5f9f5b71ae8c24ca5e (diff) | |
download | meson-8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9.zip meson-8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9.tar.gz meson-8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9.tar.bz2 |
Put all outputs to target directories.
Diffstat (limited to 'shellgenerator.py')
-rwxr-xr-x | shellgenerator.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/shellgenerator.py b/shellgenerator.py index 1fe5bee..3ce2080 100755 --- a/shellgenerator.py +++ b/shellgenerator.py @@ -50,7 +50,7 @@ class ShellGenerator(): if compiler is None: raise RuntimeError('No specified compiler can handle file ' + src) abs_src = os.path.join(self.environment.get_source_dir(), src) - abs_obj = os.path.join(self.environment.get_build_dir(), src) + abs_obj = os.path.join(self.get_target_dir(target), src) abs_obj += '.' + self.environment.get_object_suffix() commands = [] commands += compiler.get_exelist() @@ -80,19 +80,25 @@ class ShellGenerator(): outfile.write('\necho Linking \\"%s\\".\n' % outname) outfile.write(' '.join(quoted) + ' || exit\n') + def get_target_dir(self, target): + dirname = os.path.join(self.environment.get_build_dir(), target.get_basename()) + os.makedirs(dirname, exist_ok=True) + return dirname + def generate_commands(self, outfile): for i in self.interpreter.get_targets().items(): name = i[0] - e = i[1] + target = i[1] print('Generating target', name) - outname = os.path.join(self.environment.get_build_dir(), e.get_basename()) + targetdir = self.get_target_dir(target) + outname = os.path.join(targetdir, target.get_basename()) suffix = self.environment.get_exe_suffix() if suffix != '': outname = outname + '.' + suffix obj_list = [] - for src in e.get_sources(): - obj_list.append(self.generate_single_compile(e, outfile, src)) - self.generate_link(e, outfile, outname, obj_list) + for src in target.get_sources(): + obj_list.append(self.generate_single_compile(target, outfile, src)) + self.generate_link(target, outfile, outname, obj_list) if __name__ == '__main__': code = """ |