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
|
# Extract submodules from .gitmodules.
lines = $$cat(.gitmodules, lines)
for (line, lines) {
mod = $$replace(line, "^\\[submodule \"([^\"]+)\"\\]$", \\1)
!equals(mod, $$line) {
module = $$mod
modules += $$mod
} else {
prop = $$replace(line, "^$$escape_expand(\\t)([^ =]+) *=.*$", \\1)
!equals(prop, $$line) {
val = $$replace(line, "^[^=]+= *", )
module.$${module}.$$prop = $$split(val)
} else {
error("Malformed line in .gitmodules: $$line")
}
}
}
modules = $$sort_depends(modules, module., .depends .recommends)
modules = $$reverse(modules)
for (mod, modules) {
deps = $$eval(module.$${mod}.depends)
recs = $$eval(module.$${mod}.recommends)
for (d, $$list($$deps $$recs)): \
!contains(modules, $$d): \
error("'$$mod' depends on undeclared '$$d'.")
contains(QTC_SKIP_MODULES, $$mod): \
next()
!isEmpty(QTC_BUILD_MODULES):!contains(QTC_BUILD_MODULES, $$mod): \
next()
path = $$eval(module.$${mod}.path)
project = $$eval(module.$${mod}.project)
isEmpty(project) {
!exists($$path/$$section(path, /, -1).pro): \
next()
$${mod}.subdir = $$path
} else {
!exists($$path/$$project): \
next()
$${mod}.file = $$path/$$project
$${mod}.makefile = Makefile
}
$${mod}.target = sub-$$mod
for (d, deps) {
!contains(SUBDIRS, $$d) {
$${mod}.target =
break()
}
$${mod}.depends += $$d
}
isEmpty($${mod}.target): \
next()
for (d, recs) {
contains(SUBDIRS, $$d): \
$${mod}.depends += $$d
}
SUBDIRS += $$mod
}
|