aboutsummaryrefslogtreecommitdiff
path: root/shellgenerator.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-01-02 00:00:24 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-01-02 00:00:24 +0200
commit8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9 (patch)
treeb10862c7e22f085fb87a770a24f8f4f14d42714f /shellgenerator.py
parent53cddaec8cf8af941d1c2d5f9f5b71ae8c24ca5e (diff)
downloadmeson-8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9.zip
meson-8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9.tar.gz
meson-8db898928b0bce1b15f0ef8ad8c1e4936a9d0af9.tar.bz2
Put all outputs to target directories.
Diffstat (limited to 'shellgenerator.py')
-rwxr-xr-xshellgenerator.py18
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 = """