diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-28 01:07:13 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-28 01:07:13 +0200 |
commit | 98ce4539a9f4e96b348cfc33d5a16b424ea36ec3 (patch) | |
tree | 72996a5eb5b23f868cd20a6aa699393d395af0a9 /shellgenerator.py | |
parent | 2ae2a896c10233c9e102193dfca473cbd941b6f4 (diff) | |
download | meson-98ce4539a9f4e96b348cfc33d5a16b424ea36ec3.zip meson-98ce4539a9f4e96b348cfc33d5a16b424ea36ec3.tar.gz meson-98ce4539a9f4e96b348cfc33d5a16b424ea36ec3.tar.bz2 |
Mirror the source tree directories in the build tree.
Diffstat (limited to 'shellgenerator.py')
-rwxr-xr-x | shellgenerator.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/shellgenerator.py b/shellgenerator.py index 6792385..aa41c14 100755 --- a/shellgenerator.py +++ b/shellgenerator.py @@ -223,7 +223,7 @@ echo Run compile.sh before this or bad things will happen. def get_pch_include_args(self, compiler, target): args = [] - pchpath = self.get_target_dir(target) + pchpath = self.get_target_private_dir(target) includearg = compiler.get_include_arg(pchpath) for p in target.get_pch(): if compiler.can_compile(p): @@ -237,7 +237,7 @@ echo Run compile.sh before this or bad things will happen. compiler = self.get_compiler_for_source(src) commands = self.generate_basic_compiler_arguments(target, compiler) abs_src = os.path.join(self.environment.get_source_dir(), target.get_source_subdir(), src) - abs_obj = os.path.join(self.get_target_dir(target), src) + abs_obj = os.path.join(self.get_target_private_dir(target), src) abs_obj += '.' + self.environment.get_object_suffix() for i in target.get_include_dirs(): basedir = i.get_curdir() @@ -290,7 +290,12 @@ echo Run compile.sh before this or bad things will happen. outfile.write(' '.join(quoted) + ' || exit\n') def get_target_dir(self, target): - dirname = os.path.join(self.environment.get_build_dir(), target.get_basename()) + dirname = os.path.join(self.environment.get_build_dir(), target.get_subdir()) + os.makedirs(dirname, exist_ok=True) + return dirname + + def get_target_private_dir(self, target): + dirname = os.path.join(self.get_target_dir(target), target.get_basename() + '.dir') os.makedirs(dirname, exist_ok=True) return dirname @@ -319,7 +324,7 @@ echo Run compile.sh before this or bad things will happen. commands = self.generate_basic_compiler_arguments(target, compiler) srcabs = os.path.join(self.environment.get_source_dir(), target.get_source_subdir(), pch) dstabs = os.path.join(self.environment.get_build_dir(), - self.get_target_dir(target), + self.get_target_private_dir(target), os.path.split(pch)[-1] + '.' + compiler.get_pch_suffix()) commands.append(srcabs) commands += compiler.get_output_flags() |