Replacing qmake with a custom python build step

Find the full script and wiki entry here: http://trac2.assembla.com/pkaudio/wiki/qmake_build_step.py

Trying to integrate qmake into Visual Studio or Xcode can be a real pain in the ass. Instead, it’s really not that hard to write a python script to update your moc, ui, and rcc files, since all qmake does is generate makefiles that do a simple date check for each file. Hack and destroy the following code to your liking, and add it as a build step in your favorite IDE:

(Ah yes, and this code tends to run faster than make will!)

This is the basics behind the algorithm, which also runs for UIC and MOC files.

for hpath in HEADERS:
hpath = os.path.join(OUSIA, hpath)
fname = os.path.basename(hpath)
cpath = os.path.join(MOC_PATH, 'moc_' + fname.rstrip('h') + 'cpp')

if not os.path.isfile(hpath):
print 'Skipping non-existing file: ', hpath
continue

dirty = False
if not os.path.isfile(cpath):
dirty = True

if dirty is False and os.path.getmtime(hpath) > os.path.getmtime(cpath):
dirty = True

if dirty:
headerfile = open(hpath, 'r')
while True:
headerline = headerfile.readline()
if headerline == '':
break
elif 'Q_OBJECT' in headerline:
cmd = MOC_COMMAND + ' ' + hpath + " -o " + cpath
DISPATCH_SYSTEM(cmd)
updates += 1
break

verify_files.append(cpath)
By | 2010-04-16T19:25:00+00:00 April 16th, 2010|Uncategorized|0 Comments

Leave A Comment

43 − = 33