aboutsummaryrefslogtreecommitdiff
path: root/shellgenerator.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2012-12-30 00:55:35 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2012-12-30 00:55:35 +0200
commita455780ccf5c6615b7ff7449129654d47795be8e (patch)
treedc32cc575e07be99f5aa4fd207333a770bd92bb9 /shellgenerator.py
parent7d56a2fe0076665c84097fcf207dae4d9bf04430 (diff)
downloadmeson-a455780ccf5c6615b7ff7449129654d47795be8e.zip
meson-a455780ccf5c6615b7ff7449129654d47795be8e.tar.gz
meson-a455780ccf5c6615b7ff7449129654d47795be8e.tar.bz2
Put external deps into command line.
Diffstat (limited to 'shellgenerator.py')
-rwxr-xr-xshellgenerator.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/shellgenerator.py b/shellgenerator.py
index 8b410b6..e4317a7 100755
--- a/shellgenerator.py
+++ b/shellgenerator.py
@@ -37,7 +37,7 @@ class ShellGenerator():
os.chmod(outfilename, stat.S_IREAD | stat.S_IWRITE | stat.S_IEXEC |\
stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
- def generate_single_compile(self, outfile, src):
+ def generate_single_compile(self, target, outfile, src):
compiler = None
for i in self.interpreter.compilers:
if i.can_compile(src):
@@ -53,6 +53,8 @@ class ShellGenerator():
commands += compiler.get_debug_flags()
commands += compiler.get_std_warn_flags()
commands += compiler.get_compile_only_flags()
+ for dep in target.get_external_deps():
+ commands += dep.get_compile_flags()
commands.append(abs_src)
commands += compiler.get_output_flags()
commands.append(abs_obj)
@@ -61,11 +63,13 @@ class ShellGenerator():
outfile.write(' '.join(quoted))
return abs_obj
- def generate_exe_link(self, outfile, outname, obj_list):
+ def generate_link(self, target, outfile, outname, obj_list):
linker = self.interpreter.compilers[0] # Fixme.
commands = []
commands += linker.get_exelist()
commands += obj_list
+ for dep in target.get_external_deps():
+ commands += dep.get_link_flags()
commands += linker.get_output_flags()
commands.append(outname)
quoted = environment.shell_quote(commands) + ['\n']
@@ -83,8 +87,8 @@ class ShellGenerator():
outname = outname + '.' + suffix
obj_list = []
for src in e.get_sources():
- obj_list.append(self.generate_single_compile(outfile, src))
- self.generate_exe_link(outfile, outname, obj_list)
+ obj_list.append(self.generate_single_compile(e, outfile, src))
+ self.generate_link(e, outfile, outname, obj_list)
if __name__ == '__main__':
code = """