Parallel builds with qmake

So you’d like to run make -j4 on your qmake project (or make -j3, make -j2, hi google). Yes, it is possible, but like many things qmake, it is not documented. As usual, the best way to learn about qmake is to see how Qt itself uses it. Actually, I recommend Qt’s own build files as a primary source for qmake information anyway, as if you know where something ought to be in a project then it is faster to find it than going through the formal manual.

In a SUBDIRS project, you may have something like this:

SUBDIRS += library unittest examples

Change it to this:

# depend on variables, not actual directories
SUBDIRS += sub_library sub_unittest sub_examples

# specify the directories and dependencies
sub_library.subdir = library
sub_unittest.subdir = unittest
sub_unittest.depends = sub_library
sub_examples.subdir = examples
sub_examples.depends = sub_library

Have fun.

1 Comment »

  1. Tyler Mace said,

    June 20, 2008 @ 7:06 am

    At least in QT4, when you change the name of the SUBDIRS value, you change the name of the directory that it uses to “cd ___” For example, my Makefile would have said in it “cd sub_library” and “qmake sub_library.pro”

    I believe in my version of qmake, 2.01a, the “.subdir” direction didn’t work.

    My solution, when using your example, was to leave SUBDIRS alone and just call out the depends…

    SUBDIRS += library unittest examples

    unittest.depends = library
    examples.depends = library

RSS feed for comments on this post · TrackBack URI

Leave a Comment

Bad Behavior has blocked 224 access attempts in the last 7 days.