diff options
-rw-r--r-- | ninjabackend.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ninjabackend.py b/ninjabackend.py index 2da9861..f084ed8 100644 --- a/ninjabackend.py +++ b/ninjabackend.py @@ -236,7 +236,7 @@ class NinjaBackend(backends.Backend): obj_list.append(os.path.join(self.get_target_private_dir_abs(target), src)) elif not self.environment.is_header(src): if is_unity: - if '/' in src: + if self.has_dir_part(src): rel_src = src else: rel_src = os.path.join(self.get_target_private_dir_abs(target), src) @@ -1270,7 +1270,7 @@ rule FORTRAN_DEP_HACK if isinstance(src, RawFilename): rel_src = src.fname elif is_generated: - if '/' in src: + if self.has_dir_part(src): rel_src = src else: rel_src = os.path.join(self.get_target_private_dir_abs(target), src) @@ -1347,7 +1347,7 @@ rule FORTRAN_DEP_HACK for d in header_deps: if isinstance(d, RawFilename): d = d.fname - elif not '/' in d: + elif not self.has_dir_part(d): d = os.path.join(self.get_target_private_dir_abs(target), d) element.add_dep(d) for d in extra_deps: @@ -1355,7 +1355,7 @@ rule FORTRAN_DEP_HACK for d in order_deps: if isinstance(d, RawFilename): d = d.fname - elif not '/' in d : + elif not self.has_dir_part(d): d = os.path.join(self.get_target_private_dir_abs(target), d) element.add_orderdep(d) element.add_orderdep(pch_dep) @@ -1368,6 +1368,9 @@ rule FORTRAN_DEP_HACK self.check_outputs(element) return rel_obj + def has_dir_part(self, fname): + return '/' in fname or '\\' in fname + # Fortran is a bit weird (again). When you link against a library, just compiling a source file # requires the mod files that are output when single files are built. To do this right we would need to # scan all inputs and write out explicit deps for each file. That is stoo slow and too much effort so |