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)