summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/default_pre.prf
blob: 59a7e4cb14cb4aaedb5d08c349e191ca8f6c949d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
load(exclusive_builds)
### Qt 5: remove "uic" and "resources" - or add "qt"
CONFIG = lex yacc warn_on debug uic resources $$CONFIG

!build_pass:exists($$_PRO_FILE_PWD_/sync.profile) {
    PRO_BASENAME = $$basename(_PRO_FILE_)

    # Try to detect proper QTDIR path. We require QTDIR, as syncqt uses that to create qt_module.pri
    # forwarding files. If we don't find QTDIR, we avoid creating the fwd files, since you then need
    # to do a 'make install;' before you can use the module
    # (ie. we don't use QT_INSTALL_DATA for fwd includes. This path needs a full copy)
    isEmpty(QTDIR) {
        QTDIR = $$(QTDIR)
        isEmpty(QTDIR):QTDIR = $$QT_BUILD_TREE
        isEmpty(QTDIR) { # figure out QTDIR based on qmake binary
            QMAKE_BASED_QTDIR = $$dirname(QMAKE_QMAKE)
            QTDIR = $$dirname(QMAKE_BASED_QTDIR)
            unset(QMAKE_BASED_QTDIR)
        }
    }

    QTFWD = -module-fwd $$OUT_PWD/module-paths/modules -cache-module-fwd
    !isEmpty(QTDIR):exists($$QTDIR/.qmake.cache) {
        # Only if QTDIR points to an actual build directory
        # and this build directory is the install directory
        # can we tell syncqt to do a -developer-build
        win32 {
            CMP_QDIR = $$upper($$QTDIR)
            CMP_INSTALL_PREFIX = $$upper($$[QT_INSTALL_PREFIX])
        } else {
            CMP_QDIR = $$QTDIR
            CMP_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]
        }
        contains(CMP_QDIR, $$CMP_INSTALL_PREFIX):QTFWD = -qtdir $$QTDIR -module-fwd $$QTDIR/mkspecs/modules -developer-build
        unset(CMP_QDIR)
        unset(CMP_INSTALL_PREFIX)
    }

    qtPrepareTool(QMAKE_SYNCQT, syncqt)

    isEmpty(QMAKE_SYNCQT_OUTDIR): QMAKE_SYNCQT_OUTDIR = $$OUT_PWD
    MSG = $$quote($$QMAKE_SYNCQT $$QTFWD -generator $$MAKEFILE_GENERATOR -outdir $$QMAKE_SYNCQT_OUTDIR $$_PRO_FILE_PWD_)
    !silent:message($$MSG)
    system($$MSG) {
        # success! Nothing to do
    } else {
        error("Failed to run: $$MSG")
    }

    # Let qmake know about the unexpectedly appearing cache file.
    contains(QTFWD, -cache-module-fwd):_QMAKE_CACHE_ = $$QMAKE_SYNCQT_OUTDIR/.qmake.cache

    unset(QTFWD)
    unset(PRO_BASENAME)
}