1
# addExclusiveBuilds(1config, 2config)
2
# Change all output paths that references 2config to have the string 1config in them
3
defineTest(fixExclusiveOutputDirs) {
6
count(ARGS, 2, greaterThan):isEqual($$list($$lower($$3)), false):appendFirstBuild = false
7
else:appendFirstBuild = true
9
isEmpty(QMAKE_DIR_REPLACE):QMAKE_DIR_REPLACE += OBJECTS_DIR MOC_DIR
10
lessThan(firstBuild, $$secondBuild):eval($${firstBuild}_and_$${secondBuild}_target:QMAKE_DIR_REPLACE += DESTDIR)
11
else:eval($${secondBuild}_and_$${firstBuild}_target:QMAKE_DIR_REPLACE += DESTDIR)
12
for(fix, QMAKE_DIR_REPLACE) {
13
isEmpty($$fix)|isEqual($$fix, .) {
14
eval($$fix = $${firstBuild})
15
} else:contains($$list($$first($$fix)), .*$${secondBuild}.*) {
16
eval($$fix ~= s/$${secondBuild}/$${firstBuild}/gi)
17
} else:isEqual(appendFirstBuild, true):!contains($$list($$first($$fix)), .*$${firstBuild}.*) {
18
contains($$list($${first($$fix)}), .*/$):eval($$fix = $${first($$fix)}$${firstBuild})
19
else:eval($$fix = $${first($$fix)}-$${firstBuild})
26
# addExclusiveBuilds(1config, 1name, 2config, 2name)
27
# Adds two BUILDS which are exclusive to each other.
28
defineTest(addExclusiveBuilds) {
39
isEmpty(BUILDS): BUILDPERMUTATIONS = $$suffix_BUILDS
40
else: BUILDPERMUTATIONS = $$BUILDS
42
for(permutation, BUILDPERMUTATIONS) {
43
permutation ~= s/$${suffix_BUILDS}$//
44
isEmpty(permutation): permutationName =
45
else: permutationName = -$$permutation
46
# Makefile target rule
47
eval($${firstBuildName}$${permutation}.target = $${firstBuild}$$lower($${permutationName}))
48
export($${firstBuildName}$${permuation}.target)
50
eval($${firstBuildName}$${permutation}.name = $${firstBuildName}$${permutationName})
51
export($${firstBuildName}$${permuation}.name)
52
# prl import CONFIG option
53
eval($${firstBuildName}$${permutation}.PRL_CONFIG = $${firstBuild}$${permutation})
54
export($${firstBuildName}$${permuation}.PRL_CONFIG)
55
# Individual CONFIG option
56
eval($${firstBuildName}$${permutation}.CONFIG = $${firstBuild} $${firstBuildName}Build $$eval($${permutation}.CONFIG))
57
export($${firstBuildName}$${permuation}.CONFIG)
59
eval($${secondBuildName}$${permutation}.target = $${secondBuild}$$lower($${permutationName}))
60
export($${secondBuildName}$${permuation}.target)
61
eval($${secondBuildName}$${permutation}.name = $${secondBuildName}$${permutationName})
62
export($${secondBuildName}$${permuation}.name)
63
eval($${secondBuildName}$${permutation}.PRL_CONFIG = $${secondBuild}$${permutation})
64
export($${secondBuildName}$${permuation}.PRL_CONFIG)
65
eval($${secondBuildName}$${permutation}.CONFIG = $${secondBuild} $${secondBuildName}Build $$eval($${permutation}.CONFIG))
66
export($${secondBuildName}$${permuation}.CONFIG)
68
first_BUILDS += $${firstBuildName}$${permutation}
69
second_BUILDS += $${secondBuildName}$${permutation}
72
# A mutual exclusive block.
73
CONFIG($${firstBuild}, $${firstBuild}|$${secondBuild}): BUILDS = $$first_BUILDS $$second_BUILDS
74
else: BUILDS = $$second_BUILDS $$first_BUILDS
77
eval($${firstBuildName}Build:fixExclusiveOutputDirs($$firstBuild, $$secondBuild, false))
78
eval($${secondBuildName}Build:fixExclusiveOutputDirs($$secondBuild, $$firstBuild, false))