Windows path separators, the bane of my existance.

pull/278/head
Jussi Pakkanen 9 years ago
parent e76631c0d0
commit 1fbbf4705d
  1. 11
      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

Loading…
Cancel
Save