Jump to content

Including .pro Files

From Qt Wiki
Revision as of 06:07, 19 October 2020 by Marcusbritanicus (talk | contribs) (In the example, DEPENDPATH was wrongly typed as DEPENDSPATH)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

QMake's project files sometimes need to rely on the include feature. This is a great tool, but there are some tricks of the trade to be aware of.

First up, a convention, pro-files meant for inclusion in other pro-files are commonly named .pri, just to indicate that they are for inclusion. This also means that qmake does not find them, but uses the appropriate pro-file instead.

In a pro-file, you have two important variables: INCLUDEPATH and DEPENDPATH. The first is used by the C++ compiler when resolving #include statements, while the latter is used by qmake when trying to determine what to build in which order.

To create a truly movable source tree, the pri-files update these variables appropriately. My trick to do that is to rely on the current working directory. You find that by running the $$system(pwd) command (on Unix/Linux only - sorry).

Within the qmake variable reference , there are variables that may help find the current working directory (Tested on Windows ). A couple of these are: PWD ' Specifies the full path leading to the directory containing the current file being parsed.

' Specifies the full path leading to the directory where qmake places the generated Makefile.

  • The usage of the $$ prefix is detailed here.

When having set up the include and depend on paths, it is just a matter of adding to the SOURCES, HEADERS, RESOURCES and FORMS sections.

To summarize, here is a small example:

INCLUDEPATH += $$system(pwd)/include
DEPENDPATH += $$system(pwd)

SOURCES += src/foo.cpp
HEADERS += include/foo.h
FORMS += forms/foo.ui
RESOURCES += foo.qrc

Finally, in the pro-file, simply add the pri-file by calling include:


include(support/foo/foo.pri)