Change report format so Emacs compilation mode can be used...
...to step through unresolved symbols.
This commit is contained in:
parent
82484e4b6d
commit
4ef45d7482
2 changed files with 24 additions and 19 deletions
|
@ -1,18 +1,22 @@
|
|||
# Recipes for various sanity checks.
|
||||
#
|
||||
# Hack this if our location in the Wesnoth source tree changes
|
||||
TOPDIR = ../..
|
||||
|
||||
unresolved-macros:
|
||||
@echo "Report on unresolved macro calls"
|
||||
cd ../..; data/tools/macroscope --unresolved
|
||||
unresolved:
|
||||
@echo "# Report on unresolved macro calls"
|
||||
@macroscope --unresolved $(TOPDIR)
|
||||
|
||||
all:
|
||||
@echo "# Report on usage of all macros and resources"
|
||||
@macroscope --crossreference $(TOPDIR)
|
||||
|
||||
utils-unused:
|
||||
@echo "Report on unused utility macros"
|
||||
cd ../..; data/tools/macroscope --crossreference --from data/utils --refcount 0
|
||||
@echo "# Report on unused utility macros"
|
||||
@macroscope --crossreference --from data/utils --refcount 0 $(TOPDIR)
|
||||
|
||||
utils-macros:
|
||||
@echo "Report on usage of utility macros"
|
||||
cd ../..; data/tools/macroscope --crossreference --from data/utils
|
||||
@echo "# Report on usage of utility macros"
|
||||
@macroscope --crossreference --from data/utils $(TOPDIR)
|
||||
|
||||
all-macros:
|
||||
@echo "Report on usage of all macros"
|
||||
cd ../..; data/tools/macroscope --crossreference
|
||||
|
||||
|
|
|
@ -62,9 +62,12 @@ class reference:
|
|||
if fn not in self.references:
|
||||
self.references[fn] = []
|
||||
self.references[fn].append(n+1)
|
||||
def dump_references(self):
|
||||
for (file, linenumbers) in self.references.items():
|
||||
print " %s: %s" % (file, `linenumbers`[1:-1])
|
||||
def __str__(self):
|
||||
if self.line:
|
||||
return self.filename + ":" + `self.line`
|
||||
return '"%s", line %d' % (self.filename, self.line)
|
||||
else:
|
||||
return self.filename
|
||||
|
||||
|
@ -173,11 +176,10 @@ class CrossRef:
|
|||
continue
|
||||
nrefs = len(defloc.references)
|
||||
if nrefs == 0:
|
||||
print "Macro %s defined at %s is unused" % (name, defloc)
|
||||
print "%s: macro %s is unused" % (defloc, name)
|
||||
else:
|
||||
print "Macro %s defined at %s is used in %d files:" % (name, defloc, nrefs)
|
||||
for (file, linenumbers) in defloc.references.items():
|
||||
print " %s: %s" % (file, `linenumbers`[1:-1])
|
||||
print "%s: macro %s is used in %d files:" % (defloc, name, nrefs)
|
||||
defloc.dump_references()
|
||||
for (name, defloc) in self.fileref.items():
|
||||
if pred and not pred(name, defloc):
|
||||
continue
|
||||
|
@ -186,8 +188,7 @@ class CrossRef:
|
|||
print "Resource %s defined at %s is unused" % (name, defloc)
|
||||
else:
|
||||
print "Resource %s defined at %s is used in %d files:" % (name, defloc, nrefs)
|
||||
for (file, linenumbers) in defloc.references.items():
|
||||
print " %s: %s" % (file, `linenumbers`[1:-1])
|
||||
defloc.dump_references()
|
||||
def unresdump(self):
|
||||
"Report unresolved references."
|
||||
if len(self.unresolved) == 0 and len(self.missing) == 0:
|
||||
|
@ -196,7 +197,7 @@ class CrossRef:
|
|||
#print self.fileref.keys()
|
||||
print "# Unresolved references:"
|
||||
for (name, reference) in self.unresolved + self.missing:
|
||||
print "%s at %s" % (name, reference)
|
||||
print "%s -> %s" % (reference, name)
|
||||
|
||||
if __name__ == "__main__":
|
||||
def help():
|
||||
|
@ -237,8 +238,8 @@ Usage: macroscope [options] dirpath
|
|||
else:
|
||||
dirpath = ['.']
|
||||
print "# Macroscope reporting on %s" % time.ctime()
|
||||
print "# Invocation: %s" % " ".join(sys.argv)
|
||||
print "# Working directory: %s" % os.getcwd()
|
||||
print "# Directory path: %s" % dirpath
|
||||
files = allfiles(dirpath)
|
||||
if crossreference or unresolved:
|
||||
xref = CrossRef(allfiles(dirpath))
|
||||
|
|
Loading…
Add table
Reference in a new issue