File indexing completed on 2024-04-21 03:52:22

0001 #!/usr/bin/env python
0002 
0003 import os
0004 import sys
0005 import fnmatch
0006 import subprocess
0007 
0008 sipArgs = sys.argv[1:]
0009 
0010 from PyQt5.Qt import PYQT_CONFIGURATION
0011 sipArgs = PYQT_CONFIGURATION["sip_flags"].split(' ') + sipArgs
0012 
0013 idx = sipArgs.index("--module-name")
0014 modname = sipArgs[idx + 1]
0015 del sipArgs[idx]
0016 del sipArgs[idx]
0017 
0018 idx = sipArgs.index("-c")
0019 loc = sipArgs[idx + 1]
0020 
0021 oldFilenames = fnmatch.filter(os.listdir(loc), "sip" + modname + "*.cpp")
0022 try:
0023     oldFilenames.remove("sip" + modname + "cmodule.cpp")
0024 except:
0025     pass
0026 for f in oldFilenames:
0027     try:
0028         os.remove(os.path.join(loc, f))
0029     except OSError:
0030         pass
0031 
0032 idx = sipArgs.index("--unify")
0033 unified = sipArgs[idx + 1]
0034 del sipArgs[idx]
0035 del sipArgs[idx]
0036 
0037 idx = sipArgs.index("--sip")
0038 exe = sipArgs[idx + 1]
0039 del sipArgs[idx]
0040 del sipArgs[idx]
0041 
0042 try:
0043     print(subprocess.check_output([exe] + sipArgs))
0044 except subprocess.CalledProcessError:
0045     sys.exit(1)
0046 
0047 newFilenames = fnmatch.filter(os.listdir(loc), "sip" + modname + "*.cpp")
0048 unifiedString = '\n'.join(['#include "%s"' % f for f in newFilenames]) + '\n'
0049 
0050 for fn in newFilenames:
0051     lines = []
0052     with open(os.path.join(loc, fn), "r") as f:
0053         lines = f.readlines()
0054         lines = [line for line in lines if not line.startswith("#line")]
0055     with open(os.path.join(loc, fn), "w") as f:
0056         f.write(''.join(lines))
0057 
0058 with open(unified, "w") as f:
0059     f.write(unifiedString)