aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ninjabackend.py11
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