summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/default_pre.prf
blob: d760586f74467f4ef3ad582db2822582a2995493 (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
56
57
58
59
60
61
62
63
64
65
66
67
68
# This file is loaded by qmake right before each actual project file.
# Note that evaluating variable assignments from the command line
# still happens in between these two steps.

load(exclusive_builds)
CONFIG = \
    lex yacc debug exceptions depend_includepath \
    testcase_targets import_plugins import_qpa_plugin \
    $$CONFIG

contains(QT_CONFIG, c++11):lessThan(QT_COMPILER_STDCXX, 201103): CONFIG += c++11

!build_pass:defined(QT_EDITION, var):!equals(QT_EDITION, "OpenSource"):!equals(QT_EDITION, "Preview") {
    #
    # call license checker (but cache result for one day)
    #
    today = $$section(_DATE_, " ", 0, 2)
    !isEqual(QMAKE_LICHECK_TIMESTAMP, $$today) {
        !system("$$system_quote($$system_path($$[QT_HOST_BINS/src]/$$QT_LICHECK)) check" \
                "$$QT_RELEASE_DATE $$[QMAKE_SPEC] $$[QMAKE_XSPEC]"): \
            error("License check failed! Giving up ...")

        cache(QMAKE_LICHECK_TIMESTAMP, set stash, today)
    }
    unset(today)
}

isEmpty(QMAKE_DEFAULT_INCDIRS):!host_build {
    #
    # Get default include and library paths from compiler
    #
    gcc {
        equals(QMAKE_DIR_SEP, /) {
            cmd_prefix = "LC_ALL=C"
            cmd_suffix = "</dev/null >/dev/null"
        } else {
            cmd_prefix = "set LC_ALL=C&"
            cmd_suffix = "<NUL >NUL"
        }
        output = $$system("$$cmd_prefix $$QMAKE_CXX $$QMAKE_CXXFLAGS -xc++ -E -v - 2>&1 $$cmd_suffix", lines)
        add_includes = false
        for (line, output) {
            line ~= s/^ *//  # remove leading spaces
            contains(line, "LIBRARY_PATH=.*") {
                line ~= s/^LIBRARY_PATH=//  # remove leading LIBRARY_PATH=
                paths = $$split(line, $$QMAKE_DIRLIST_SEP)
                for (path, paths): \
                    QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path)
            } else: contains(line, "$${LITERAL_HASH}include <.*") {  # #include <...> search starts here:
                add_includes = true
            } else: contains(line, "End of search.*") {
                add_includes = false
            } else: $$add_includes {
                !contains(line, ".* \\(framework directory\\)"): \
                    QMAKE_DEFAULT_INCDIRS += $$clean_path($$line)
            }
        }
        QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS)
    }

    unix {
        isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
        isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
    }

    !isEmpty(QMAKE_DEFAULT_INCDIRS): cache(QMAKE_DEFAULT_INCDIRS, set stash)
    !isEmpty(QMAKE_DEFAULT_LIBDIRS): cache(QMAKE_DEFAULT_LIBDIRS, set stash)
}