//! [0]
        make all
//! [0]


//! [1]
        CONFIG += qt thread debug
//! [1]


//! [2]
        CONFIG += qt
        QT += network xml
//! [2]


//! [3]
        QT = network xml # This will omit the core and gui modules.
//! [3]


//! [4]
        QT -= gui # Only the core module is used.
//! [4]


//! [5]
        CONFIG += link_pkgconfig
        PKGCONFIG += ogg dbus-1
//! [5]


//! [6]
        LIBS += -L/usr/local/lib -lmath
//! [6]


//! [7]
        INCLUDEPATH = c:/msdev/include d:/stl/include
//! [7]


//! [8]
        qmake [mode] [options] files
//! [8]


//! [9]
        qmake -makefile [options] files
//! [9]


//! [10]
        qmake -makefile -unix -o Makefile "CONFIG+=test" test.pro
//! [10]


//! [11]
        qmake "CONFIG+=test" test.pro
//! [11]


//! [12]
        qmake -project [options] files
//! [12]


//! [13]
        qmake -spec macx-g++
//! [13]


//! [14]
        QMAKE_LFLAGS += -L/path/to/framework/directory/
//! [14]


//! [15]
        LIBS += -framework TheFramework
//! [15]


//! [16]
        TEMPLATE = lib
        CONFIG += lib_bundle
//! [16]


//! [17]
    FRAMEWORK_HEADERS.version = Versions
    FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
    FRAMEWORK_HEADERS.path = Headers
    QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
//! [17]


//! [18]
        CONFIG += x86 ppc
//! [18]


//! [19]
    qmake -spec macx-xcode project.pro
//! [19]


//! [20]
    qmake -t vcapp
//! [20]


//! [21]
    qmake -r -spec win32-msvc2005 -tp vc
//! [21]


//! [22]
        CONFIG -= embed_manifest_exe
//! [22]


//! [23]
        CONFIG -= embed_manifest_dll
//! [23]


//! [24]
        make all
//! [24]


//! [25]
        build_pass:CONFIG(debug, debug|release) {
            unix: TARGET = $$join(TARGET,,,_debug)
            else: TARGET = $$join(TARGET,,,d)
        }
//! [25]


//! [26]
        CONFIG += qt console newstuff
        ...
        newstuff {
            SOURCES += new.cpp
            HEADERS += new.h
        }
//! [26]


//! [27]
        DEFINES += USE_MY_STUFF QT_DLL
//! [27]


//! [28]
        deploy.sources = path\*.png
        DEPLOYMENT = deploy
//! [28]


//! [29]
        deploy.sources = path\file1.ext1 path2\file2.ext1 path3\*
        deploy.path = \some\path\on\device
        someother.sources = C:\additional\files\*
        someother.path = \deploy\path2
        DEPLOYMENT = deploy someother
//! [29]


//! [30]
        DESTDIR = ../../lib
//! [30]


//! [31]
        DISTFILES += ../program.txt
//! [31]


//! [32]
        FORMS = mydialog.ui \
            mywidget.ui \
                myconfig.ui
//! [32]


//! [33]
        FORMS3 = my_uic3_dialog.ui \
             my_uic3_widget.ui \
                 my_uic3_config.ui
//! [33]


//! [34]
        HEADERS = myclass.h \
                  login.h \
                  mainwindow.h
//! [34]


//! [35]
        INCLUDEPATH = c:/msdev/include d:/stl/include
//! [35]


//! [36]
        target.path += $$[QT_INSTALL_PLUGINS]/imageformats
        INSTALLS += target
//! [36]


//! [37]
        LEXSOURCES = lexer.l
//! [37]


//! [38]
        unix:LIBS += -L/usr/local/lib -lmath
        win32:LIBS += c:/mylibs/math.lib
//! [38]


//! [39]
        CONFIG += no_lflags_merge
//! [39]


//! [40]
        unix:MOC_DIR = ../myproject/tmp
        win32:MOC_DIR = c:/myproject/tmp
//! [40]


//! [41]
        unix:OBJECTS_DIR = ../myproject/tmp
        win32:OBJECTS_DIR = c:/myproject/tmp
//! [41]


//! [42]
        app {
            # Conditional code for 'app' template here
        }
//! [42]


//! [43]
    FRAMEWORK_HEADERS.version = Versions
    FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
    FRAMEWORK_HEADERS.path = Headers
    QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
//! [43]


//! [44]
    QMAKE_BUNDLE_EXTENSION = .myframework
//! [44]


//! [45]
    QMAKE_RESOURCE_FLAGS += -threshold 0 -compress 9
//! [45]


//! [46]
        QMAKE_UIC = uic -L /path/to/plugin
//! [46]


//! [47]
        QT -= gui # Only the core module is used.
//! [47]


//! [48]
        unix:RCC_DIR = ../myproject/resources
        win32:RCC_DIR = c:/myproject/resources
//! [48]


//! [49]
        SOURCES = myclass.cpp \
              login.cpp \
              mainwindow.cpp
//! [49]


//! [50]
        SUBDIRS = kernel \
                  tools
//! [50]


//! [51]
        CONFIG += ordered
//! [51]


//! [52]
        TEMPLATE = app
        TARGET = myapp
        SOURCES = main.cpp
//! [52]


//! [53]
        TEMPLATE = lib
        SOURCES = main.cpp
        TARGET = mylib
//! [53]


//! [54]
        unix:UI_DIR = ../myproject/ui
        win32:UI_DIR = c:/myproject/ui
//! [54]


//! [55]
        unix:UI_HEADERS_DIR = ../myproject/ui/include
        win32:UI_HEADERS_DIR = c:/myproject/ui/include
//! [55]


//! [56]
        unix:UI_SOURCES_DIR = ../myproject/ui/src
        win32:UI_SOURCES_DIR = c:/myproject/ui/src
//! [56]


//! [57]
        VERSION = 1.2.3
//! [57]


//! [58]
        YACCSOURCES = moc.y
//! [58]


//! [59]
       FILE = /etc/passwd
       FILENAME = $$basename(FILE) #passwd
//! [59]


//! [60]
        CONFIG = debug
        CONFIG += release
        CONFIG(release, debug|release):message(Release build!) #will print
        CONFIG(debug, debug|release):message(Debug build!) #no print
//! [60]


//! [61]
        contains( drivers, network ) {
            # drivers contains 'network'
            message( "Configuring for network build..." )
            HEADERS += network.h
            SOURCES += network.cpp
        }
//! [61]


//! [62]
        error(An error has occurred in the configuration process.)
//! [62]


//! [63]
        exists( $(QTDIR)/lib/libqt-mt* ) {
              message( "Configuring for multi-threaded Qt..." )
              CONFIG += thread
        }
//! [63]


//! [64]
        MY_VAR = one two three four
        MY_VAR2 = $$join(MY_VAR, " -L", -L) -Lfive
        MY_VAR3 = $$member(MY_VAR, 2) $$find(MY_VAR, t.*)
//! [64]


//! [65]
        LIST = 1 2 3
        for(a, LIST):exists(file.$${a}):message(I see a file.$${a}!)
//! [65]


//! [66]
        include( shared.pri )
        OPTIONS = standard custom
        !include( options.pri ) {
            message( "No custom build options specified" )
        OPTIONS -= custom
        }
//! [66]


//! [67]
        isEmpty( CONFIG ) {
        CONFIG += qt warn_on debug
        }
//! [67]


//! [68]
        message( "This is a message" )
//! [68]


//! [69]
        !build_pass:message( "This is a message" )
//! [69]


//! [70]
    This is a test.
//! [70]


//! [71]
        system(ls /bin):HAS_BIN=FALSE
//! [71]


//! [72]
        UNAME = $$system(uname -s)
        contains( UNAME, [lL]inux ):message( This looks like Linux ($$UNAME) to me )
//! [72]


//! [73]
       ARGS = 1 2 3 2 5 1
       ARGS = $$unique(ARGS) #1 2 3 5
//! [73]


//! [74]
        qmake -set VARIABLE VALUE
//! [74]


//! [75]
        qmake -query VARIABLE
        qmake -query #queries all current VARIABLE/VALUE pairs..
//! [75]


//! [76]
        qmake -query "1.06a/VARIABLE"
//! [76]


//! [77]
        qmake -query "QT_INSTALL_PREFIX"
//! [77]


//! [78]
        QMAKE_VERS = $$[QMAKE_VERSION]
//! [78]


//! [79]
        documentation.path = /usr/local/program/doc
        documentation.files = docs/*
//! [79]


//! [80]
        INSTALLS += documentation
//! [80]


//! [81]
        unix:documentation.extra = create_docs; mv master.doc toc.doc
//! [81]


//! [82]
        target.path = /usr/local/myprogram
        INSTALLS += target
//! [82]


//! [83]
        CONFIG += create_prl
//! [83]


//! [84]
        CONFIG += link_prl
//! [84]


//! [85]
        QMAKE_EXT_MOC = .mymoc
//! [85]


//! [86]
        mytarget.target = .buildfile
        mytarget.commands = touch $$mytarget.target
        mytarget.depends = mytarget2

        mytarget2.commands = @echo Building $$mytarget.target
//! [86]


//! [87]
        QMAKE_EXTRA_TARGETS += mytarget mytarget2
//! [87]


//! [88]
        new_moc.output  = moc_${QMAKE_FILE_BASE}.cpp
        new_moc.commands = moc ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
        new_moc.depend_command = g++ -E -M ${QMAKE_FILE_NAME} | sed "s,^.*: ,,"
        new_moc.input = NEW_HEADERS
        QMAKE_EXTRA_COMPILERS += new_moc
//! [88]


//! [89]
        TARGET = myapp
//! [89]


//! [90]
        DEFINES += QT_DLL
//! [90]


//! [91]
        DEFINES -= QT_DLL
//! [91]


//! [92]
        DEFINES *= QT_DLL
//! [92]


//! [93]
        DEFINES ~= s/QT_[DT].+/QT
//! [93]


//! [94]
        EVERYTHING = $$SOURCES $$HEADERS
        message("The project contains the following files:")
        message($$EVERYTHING)
//! [94]


//! [95]
        win32:DEFINES += QT_DLL
//! [95]


//! [96]
        win32:xml {
            message(Building for Windows)
            SOURCES += xmlhandler_win.cpp
        } else:xml {
            SOURCES += xmlhandler.cpp
        } else {
            message("Unknown configuration")
        }
//! [96]


//! [97]
        MY_VARIABLE = value
//! [97]


//! [98]
        MY_DEFINES = $$DEFINES
//! [98]


//! [99]
        MY_DEFINES = $${DEFINES}
//! [99]


//! [100]
        TARGET = myproject_$${TEMPLATE}
//! [100]


//! [101]
        target.path = $$[QT_INSTALL_PLUGINS]/designer
        INSTALLS += target
//! [101]


//! [102]
        defineReplace(functionName){
            #function code
        }
//! [102]


//! [103]
        CONFIG += myfeatures
//! [103]


//! [104]
    // Add C includes here

    #if defined __cplusplus
    // Add C++ includes here
    #include <stdlib>
    #include <iostream>
    #include <vector>
    #include <QApplication> // Qt includes
    #include <QPushButton>
    #include <QLabel>
    #include "thirdparty/include/libmain.h"
    #include "my_stable_class.h"
    ...
    #endif
//! [104]


//! [105]
        PRECOMPILED_HEADER = stable.h
//! [105]


//! [106]
        precompile_header:!isEmpty(PRECOMPILED_HEADER) {
        DEFINES += USING_PCH
        }
//! [106]


//! [107]
        PRECOMPILED_HEADER = window.h
        SOURCES            = window.cpp
//! [107]


//! [108]
        SOURCES += hello.cpp
//! [108]


//! [109]
        SOURCES += hello.cpp
        SOURCES += main.cpp
//! [109]


//! [110]
        SOURCES = hello.cpp \
                  main.cpp
//! [110]


//! [111]
        HEADERS += hello.h
        SOURCES += hello.cpp
        SOURCES += main.cpp
//! [111]


//! [112]
        TARGET = helloworld
//! [112]


//! [113]
        CONFIG += qt
        HEADERS += hello.h
        SOURCES += hello.cpp
        SOURCES += main.cpp
//! [113]


//! [114]
        qmake -o Makefile hello.pro
//! [114]


//! [115]
        qmake -tp vc -o hello.dsp hello.pro
//! [115]


//! [116]
        CONFIG += qt debug
        HEADERS += hello.h
        SOURCES += hello.cpp
        SOURCES += main.cpp
//! [116]


//! [117]
        win32 {
            SOURCES += hellowin.cpp
        }
//! [117]


//! [118]
        CONFIG += qt debug
        HEADERS += hello.h
        SOURCES += hello.cpp
        SOURCES += main.cpp
        win32 {
            SOURCES += hellowin.cpp
        }
        unix {
            SOURCES += hellounix.cpp
        }
//! [118]


//! [119]
        !exists( main.cpp ) {
            error( "No main.cpp file found" )
        }
//! [119]


//! [120]
        CONFIG += qt debug
        HEADERS += hello.h
        SOURCES += hello.cpp
        SOURCES += main.cpp
        win32 {
            SOURCES += hellowin.cpp
        }
        unix {
            SOURCES += hellounix.cpp
        }
        !exists( main.cpp ) {
            error( "No main.cpp file found" )
        }
//! [120]


//! [121]
        win32 {
            debug {
                CONFIG += console
            }
        }
//! [121]


//! [122]
        CONFIG += qt debug
        HEADERS += hello.h
        SOURCES += hello.cpp
        SOURCES += main.cpp
        win32 {
            SOURCES += hellowin.cpp
        }
        unix {
            SOURCES += hellounix.cpp
        }
        !exists( main.cpp ) {
            error( "No main.cpp file found" )
        }
        win32:debug {
            CONFIG += console
        }
//! [122]


//! [123]
        TEMPLATE = app
        DESTDIR  = c:/helloapp
        HEADERS += hello.h
        SOURCES += hello.cpp
        SOURCES += main.cpp
        DEFINES += QT_DLL
        CONFIG  += qt warn_on release
//! [123]


//! [124]
        make all
//! [124]


//! [125]
        make
//! [125]


//! [126]
        make install
//! [126]


//! [127]
    CONFIG(debug, debug|release) {
        mac: TARGET = $$join(TARGET,,,_debug)
        win32: TARGET = $$join(TARGET,,d)
    }
//! [127]


