Update submodules on '5.6' in qt5
[mirror/qt/qt5.git] / qt.pro
1 # Create the super cache so modules will add themselves to it.
2 cache(, super)
3
4 CONFIG += build_pass   # hack to disable the .qmake.super auto-add
5 load(qt_build_config)
6 CONFIG -= build_pass   # unhack, as it confuses Qt Creator
7
8 TEMPLATE      = subdirs
9
10 # Extract submodules from .gitmodules.
11 lines = $$cat(.gitmodules, lines)
12 for (line, lines) {
13     mod = $$replace(line, "^\\[submodule \"([^\"]+)\"\\]$", \\1)
14     !equals(mod, $$line) {
15         module = $$mod
16         modules += $$mod
17     } else {
18         prop = $$replace(line, "^$$escape_expand(\\t)([^ =]+) *=.*$", \\1)
19         !equals(prop, $$line) {
20             val = $$replace(line, "^[^=]+= *", )
21             module.$${module}.$$prop = $$split(val)
22         } else {
23             error("Malformed line in .gitmodules: $$line")
24         }
25     }
26 }
27 QMAKE_INTERNAL_INCLUDED_FILES += $$PWD/.gitmodules
28
29 modules = $$sort_depends(modules, module., .depends .recommends .serialize)
30 modules = $$reverse(modules)
31 for (mod, modules) {
32     project = $$eval(module.$${mod}.project)
33     equals(project, -): \
34         next()
35
36     deps = $$eval(module.$${mod}.depends)
37     recs = $$eval(module.$${mod}.recommends) $$eval(module.$${mod}.serialize)
38     for (d, $$list($$deps $$recs)): \
39         !contains(modules, $$d): \
40             error("'$$mod' depends on undeclared '$$d'.")
41
42     contains(QT_SKIP_MODULES, $$mod): \
43         next()
44     !isEmpty(QT_BUILD_MODULES):!contains(QT_BUILD_MODULES, $$mod): \
45         next()
46
47     isEmpty(project) {
48         !exists($$mod/$${mod}.pro): \
49             next()
50         $${mod}.subdir = $$mod
51     } else {
52         !exists($$mod/$$project): \
53             next()
54         $${mod}.file = $$mod/$$project
55         $${mod}.makefile = Makefile
56     }
57     $${mod}.target = module-$$mod
58
59     for (d, deps) {
60         !contains(SUBDIRS, $$d) {
61             $${mod}.target =
62             break()
63         }
64         $${mod}.depends += $$d
65     }
66     isEmpty($${mod}.target): \
67         next()
68     for (d, recs) {
69         contains(SUBDIRS, $$d): \
70             $${mod}.depends += $$d
71     }
72
73     SUBDIRS += $$mod
74 }