Running qmake
The behavior of qmake can be customized when it is run by specifying various options on the command line. These allow the build process to be fine-tuned, provide useful diagnostic information, and can be used to specify the target platform for your project.
Command-Line Options
Syntax
The syntax used to run qmake takes the following simple form:
qmake [mode] [options] files
qmake supports two different modes of operation: In the default mode,qmake will use the description in a project file to generate a Makefile, but it is also possible to use qmake to generate project files. If you want to explicitly set the mode, you must specify it before all other options. The mode can be either of the following two values:
-makefile
qmakeoutput will be a Makefile.-project
qmakeoutput will be a project file.
Note: It is likely that the created file will need to be edited; for example, adding theQTvariable to suit what modules are required for the project.
The following options are used to specify both general and mode-specific settings. Options that only apply to the Makefile mode are described in the Makefile Mode Options section; options that influence the creation of project files are described in the Project File Options section.
The files argument represents a list of one or more project files, separated by spaces.
Options
A wide range of options can be specified on the command line to qmake in order to customize the build process, and to override default settings for your platform. The following basic options provide usage information, specify where qmake writes the output file, and control the level of debugging information that will be written to the console:
-help
qmakewill go over these features and give some useful help.-ofile
qmakeoutput will be directed to file. If this option is not specified,qmakewill try to use a suitable file name for its output, depending on the mode it is running in.
If '-' is specified, output is directed to stdout.-d
qmakewill output debugging information.
For projects that need to be built differently on each target platform, with many subdirectories, you can run qmake with each of the following options to set the corresponding platform-specific variable in each project file:
-unix
qmakewill run in unix mode. In this mode, Unix file naming and path conventions will be used, additionally testing forunix(as a scope) will succeed. This is the default mode on all Unices.-macx
qmakewill run in Mac OS X mode. In this mode, Unix file naming and path conventions will be used, additionally testing formacx(as a scope) will succeed. This is the default mode on Mac OS X.-win32
qmakewill run in win32 mode. In this mode, Windows file naming and path conventions will be used, additionally testing forwin32(as a scope) will succeed. This is the default mode on Windows.
The template used for the project is usually specified by the TEMPLATE variable in the project file. We can override or modify this by using the following options:
-ttmpl
qmakewill override any setTEMPLATEvariables with tmpl, but only after the .pro file has been processed.-tpprefix
qmakewill add the prefix to theTEMPLATEvariable.
The level of warning information can be fine-tuned to help you find problems in your project file:
-Wall
qmakewill report all known warnings.-Wnone
No warning information will be generated by l{qmake Manual#qmake}{qmake}.-Wparser
qmakewill only generate parser warnings. This will alert you to common pitfalls and potential problems in the parsing of your project files.-Wlogic
qmakewill warn of common pitfalls and potential problems in your project file. For example,qmakewill report whether a file is placed into a list of files multiple times, or if a file cannot be found.
Makefile Mode Options
qmake -makefile [options] files
In Makefile mode, qmake will generate a Makefile that is used to build the project. Additionally, the following options may be used in this mode to influence the way the project file is generated:
-after
qmakewill process assignments given on the command line after the specified files.-nocache
qmakewill ignore the .qmake.cache file.-nodepend
qmakewill not generate any dependency information.-cachefile
qmakewill use file as the cache file, ignoring any other .qmake.cache files found.-specspec
qmakewill use spec as a path to platform and compiler information, and the value ofQMAKESPECwill be ignored.
You may also pass qmake assignments on the command line; they will be processed before all of the files specified. For example:
qmake -makefile -unix -o Makefile "CONFIG+=test" test.pro
This will generate a Makefile, from test.pro with Unix pathnames. However many of the specified options aren't necessary as they are the default. Therefore, the line can be simplified on Unix to:
qmake "CONFIG+=test" test.pro
If you are certain you want your variables processed after the files specified, then you may pass the -after option. When this is specified, all assignments on the command line after the -after option will be postponed until after the specified files are parsed.
Project Mode Options
qmake -project [options] files
In project mode, qmake will generate a project file. Additionally, you may supply the following options in this mode:
-r
qmakewill look through supplied directories recursively-nopwd
qmakewill not look in your current working directory for source code and only use the specifiedfiles
In this mode, the files argument can be a list of files or directories. If a directory is specified, it will be included in the DEPENDPATH variable, and relevant code from there will be included in the generated project file. If a file is given, it will be appended to the correct variable, depending on its extension; for example, UI files are added to FORMS, and C++ files are added to SOURCES.
You may also pass assignments on the command line in this mode. When doing so, these assignments will be placed last in the generated project file.
© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.