cscope-index.py revision 3110
113481Sgiacomo.travaglini@arm.com#! /usr/bin/python
213481Sgiacomo.travaglini@arm.com
313481Sgiacomo.travaglini@arm.com# Generate list of files to index with cscope.
413481Sgiacomo.travaglini@arm.com
513481Sgiacomo.travaglini@arm.com# From the m5 directory, run:
613481Sgiacomo.travaglini@arm.com#    util/cscope-find.py > cscope.files
713481Sgiacomo.travaglini@arm.com#    cscope -b
813481Sgiacomo.travaglini@arm.com
913481Sgiacomo.travaglini@arm.comimport os
1013481Sgiacomo.travaglini@arm.com
1113481Sgiacomo.travaglini@arm.com# absolute paths to skip
1213481Sgiacomo.travaglini@arm.comskipdirs = [ 'src/unittest', 'src/doxygen' ]
1313481Sgiacomo.travaglini@arm.com
1413481Sgiacomo.travaglini@arm.com# suffixes of files to index
1513481Sgiacomo.travaglini@arm.comsuffixes = [ '.cc', '.hh', '.c', '.h' ]
1613481Sgiacomo.travaglini@arm.com
1713481Sgiacomo.travaglini@arm.comdef oksuffix(f):
1813481Sgiacomo.travaglini@arm.com    for s in suffixes:
1913481Sgiacomo.travaglini@arm.com        if f.endswith(s):
2013481Sgiacomo.travaglini@arm.com            return True
2113481Sgiacomo.travaglini@arm.com    return False
2213481Sgiacomo.travaglini@arm.com
2313481Sgiacomo.travaglini@arm.comfor dirpath,subdirs,files in os.walk('src'):
2413481Sgiacomo.travaglini@arm.com    # filter out undesirable subdirectories
2513481Sgiacomo.travaglini@arm.com    for i,dir in enumerate(subdirs):
2613481Sgiacomo.travaglini@arm.com        if dir == 'SCCS':
2713481Sgiacomo.travaglini@arm.com            del subdirs[i]
2813481Sgiacomo.travaglini@arm.com            break
2913481Sgiacomo.travaglini@arm.com
3013481Sgiacomo.travaglini@arm.com    # filter out undesriable absolute paths
3113481Sgiacomo.travaglini@arm.com    if dirpath in skipdirs:
3213481Sgiacomo.travaglini@arm.com        del subdirs[:]
3313481Sgiacomo.travaglini@arm.com        continue
3413481Sgiacomo.travaglini@arm.com
3513481Sgiacomo.travaglini@arm.com    # find C/C++ sources
3613481Sgiacomo.travaglini@arm.com    okfiles = [f for f in files if oksuffix(f)]
3713481Sgiacomo.travaglini@arm.com    if okfiles:
3813481Sgiacomo.travaglini@arm.com        print '\n'.join([os.path.join(dirpath, f) for f in okfiles])
3913481Sgiacomo.travaglini@arm.com