mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-24 10:52:56 +00:00
32 lines
1 KiB
Python
32 lines
1 KiB
Python
![]() |
#!/usr/bin/python2
|
||
|
|
||
|
import sys, os, re
|
||
|
|
||
|
headersdir = os.getcwd()
|
||
|
component = sys.argv[1]
|
||
|
keyword = sys.argv[2]
|
||
|
|
||
|
mapoutput = '%s/include/%s_map.h' % (headersdir, component)
|
||
|
mapdata = '#ifndef %s_MAP_H\n#define %s_MAP_H\n\n' % (component, component)
|
||
|
|
||
|
def exportscan(sdir):
|
||
|
dirmap = ''
|
||
|
for sroot, sdir, lfiles in os.walk(sdir):
|
||
|
for sfile in lfiles:
|
||
|
if not sfile.endswith('.h'):
|
||
|
continue
|
||
|
sfull = '%s/%s' % (sroot, sfile)
|
||
|
with open(sfull, 'rb') as f:
|
||
|
scontent = f.read()
|
||
|
scontent = scontent.decode('utf-8')
|
||
|
for match in re.findall('class (?:%s) (\w+)' % keyword, scontent):
|
||
|
dirmap += 'QT_CLASS_LIB(%s, %s, %s)\n' % (match, component, sfile)
|
||
|
return dirmap
|
||
|
|
||
|
mapdata += exportscan('%s/include/%s' % (headersdir, component))
|
||
|
mapdata += exportscan('%s/privateinclude/%s' % (headersdir, component))
|
||
|
mapdata += '\n#endif\n'
|
||
|
|
||
|
sys.stderr.write('-- Writing: %s\n' % os.path.basename(mapoutput))
|
||
|
with open(mapoutput, 'wb') as f:
|
||
|
f.write(mapdata)
|