diff options
author | Aleksey Filippov <alekseyf@google.com> | 2018-03-14 20:51:03 +0000 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-03-15 21:14:58 +0200 |
commit | 7f042b5fe2c3bf3bdd254aefe5936c20cb4bd293 (patch) | |
tree | be53fa41c9075355641e375bfa5439f3e6b0bb79 /mesonbuild/backend/backends.py | |
parent | 2e128f71bb3215567a5bb2267abae00ed4ee09be (diff) | |
download | meson-7f042b5fe2c3bf3bdd254aefe5936c20cb4bd293.zip meson-7f042b5fe2c3bf3bdd254aefe5936c20cb4bd293.tar.gz meson-7f042b5fe2c3bf3bdd254aefe5936c20cb4bd293.tar.bz2 |
Use target.get_id() instead of basename and type_suffix concatenation at call site
Fixes the bug with flat layout and identical target names in subprojects.
Without this change directories are not created with subproject prefix
and they can collide.
Remove dead makedirs code in Backend.__init__(), during initialization
of backend build.targets is empty. Create output directories in
Vs2010Backend.generate_projects() instead.
Also use double blank line in run_unittests.py according to
https://www.python.org/dev/peps/pep-0008/#blank-lines.
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r-- | mesonbuild/backend/backends.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index a8e8164..b8ca71f 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -108,9 +108,6 @@ class Backend: self.processed_targets = {} self.build_to_src = os.path.relpath(self.environment.get_source_dir(), self.environment.get_build_dir()) - for t in self.build.targets: - priv_dirname = self.get_target_private_dir_abs(t) - os.makedirs(priv_dirname, exist_ok=True) def get_target_filename(self, t): if isinstance(t, build.CustomTarget): @@ -170,12 +167,10 @@ class Backend: return self.build_to_src def get_target_private_dir(self, target): - dirname = os.path.join(self.get_target_dir(target), target.get_basename() + target.type_suffix()) - return dirname + return os.path.join(self.get_target_dir(target), target.get_id()) def get_target_private_dir_abs(self, target): - dirname = os.path.join(self.environment.get_build_dir(), self.get_target_private_dir(target)) - return dirname + return os.path.join(self.environment.get_build_dir(), self.get_target_private_dir(target)) def get_target_generated_dir(self, target, gensrc, src): """ @@ -519,9 +514,8 @@ class Backend: # Fortran requires extra include directives. if compiler.language == 'fortran': for lt in target.link_targets: - priv_dir = os.path.join(self.get_target_dir(lt), lt.get_basename() + lt.type_suffix()) - incflag = compiler.get_include_args(priv_dir, False) - commands += incflag + priv_dir = self.get_target_private_dir(lt) + commands += compiler.get_include_args(priv_dir, False) return commands def build_target_link_arguments(self, compiler, deps): |