Latest version, we need to realpath anyway to check if an obj

dependency is also a src dependency.
This commit is contained in:
Simon J. Gerraty 2017-04-15 03:28:13 +00:00
parent b98582b146
commit c0339e7dfd
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=316952

View File

@ -492,6 +492,21 @@ def parse(self, name=None, file=None):
if not file:
f.close()
def is_src(self, base, dir, rdir):
"""is base in srctop"""
for dir in [dir,rdir]:
if not dir:
continue
path = '/'.join([dir,base])
srctop = self.find_top(path, self.srctops)
if srctop:
if self.dpdeps:
self.add(self.file_deps, path.replace(srctop,''), 'file')
self.add(self.src_deps, dir.replace(srctop,''), 'src')
self.seenit(dir)
return True
return False
def parse_path(self, path, cwd, op=None, w=[]):
"""look at a path for the op specified"""
@ -520,10 +535,9 @@ def parse_path(self, path, cwd, op=None, w=[]):
# to the src dir, we may need to add dependencies for each
rdir = dir
dir = abspath(dir, cwd, self.last_dir, self.debug, self.debug_out)
if rdir == dir or rdir.find('./') > 0:
rdir = None
if os.path.islink(dir):
rdir = os.path.realpath(dir)
if rdir == dir:
rdir = None
# now put path back together
path = '/'.join([dir,base])
if self.debug > 1:
@ -544,17 +558,9 @@ def parse_path(self, path, cwd, op=None, w=[]):
# finally, we get down to it
if dir == self.cwd or dir == self.curdir:
return
srctop = self.find_top(path, self.srctops)
if srctop:
if self.dpdeps:
self.add(self.file_deps, path.replace(srctop,''), 'file')
self.add(self.src_deps, dir.replace(srctop,''), 'src')
if self.is_src(base, dir, rdir):
self.seenit(w[2])
self.seenit(dir)
if rdir and not rdir.startswith(srctop):
dir = rdir # for below
rdir = None
else:
if not rdir:
return
objroot = None