Difference between revisions of "Including .pro Files"
AutoSpider (talk | contribs) (Add "cleanup" tag) |
AutoSpider (talk | contribs) (Convert ExpressionEngine links) |
||
Line 15: | Line 15: | ||
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). | 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 | + | Within the [http://doc.qt.nokia.com/4.7/qmake-variable-reference.html qmake variable reference] , there are variables that may help find the current working directory (Tested on Windows ). A couple of these are: |
− | ''' | + | ''' [http://doc.qt.nokia.com/4.7/qmake-variable-reference.html#pwd '''PWD'''] |
'''''' This variable contains the full path leading to the directory where the qmake project file (project.pro) is located. | '''''' This variable contains the full path leading to the directory where the qmake project file (project.pro) is located. | ||
− | * | + | * [http://doc.qt.nokia.com/4.7/qmake-variable-reference.html#out-pwd '''OUT_PWD'''] |
'''''' This variable contains the full path leading to the directory where qmake places the generated Makefile. | '''''' This variable contains the full path leading to the directory where qmake places the generated Makefile. | ||
− | * Usage of the $$ prefix is detailed | + | * Usage of the $$ prefix is detailed [http://doc.qt.nokia.com/latest/qmake-advanced-usage.html#variables here] . |
When having setup the include and depend paths, it is just a matter of adding to the SOURCES, HEADERS, RESOURCES and FORMS sections. | When having setup the include and depend paths, it is just a matter of adding to the SOURCES, HEADERS, RESOURCES and FORMS sections. |
Revision as of 15:01, 4 March 2015
Including pro-files into pro-files
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 ' This variable contains the full path leading to the directory where the qmake project file (project.pro) is located.
' This variable contains the full path leading to the directory where qmake places the generated Makefile.
- Usage of the $$ prefix is detailed here .
When having setup the include and depend 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
DEPENDSPATH= $$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)
…