93 lines
4.3 KiB
Plaintext
93 lines
4.3 KiB
Plaintext
|
# fixExclusiveOutputDirs(1config, 2config)
|
||
|
# Change all output paths that references 2config to have the string 1config in them
|
||
|
defineTest(fixExclusiveOutputDirs) {
|
||
|
firstBuild = $$1
|
||
|
secondBuild = $$2
|
||
|
count(ARGS, 2, greaterThan):isEqual($$list($$lower($$3)), false):appendFirstBuild = false
|
||
|
else:appendFirstBuild = true
|
||
|
|
||
|
isEmpty(QMAKE_DIR_REPLACE):QMAKE_DIR_REPLACE += OBJECTS_DIR MOC_DIR RCC_DIR
|
||
|
lessThan(firstBuild, $$secondBuild):eval($${firstBuild}_and_$${secondBuild}_target:QMAKE_DIR_REPLACE += DESTDIR)
|
||
|
else:eval($${secondBuild}_and_$${firstBuild}_target:QMAKE_DIR_REPLACE += DESTDIR)
|
||
|
for(fix, QMAKE_DIR_REPLACE) {
|
||
|
isEmpty($$fix)|isEqual($$fix, .) {
|
||
|
eval($$fix = $${firstBuild})
|
||
|
} else:contains($$list($$first($$fix)), .*$${secondBuild}.*) {
|
||
|
eval($$fix ~= s/$${secondBuild}/$${firstBuild}/gi)
|
||
|
} else:isEqual(appendFirstBuild, true):!contains($$list($$first($$fix)), .*$${firstBuild}.*) {
|
||
|
contains($$list($${first($$fix)}), .*/$):eval($$fix = $${first($$fix)}$${firstBuild})
|
||
|
else:eval($$fix = $${first($$fix)}-$${firstBuild})
|
||
|
}
|
||
|
export($$fix)
|
||
|
}
|
||
|
return(true)
|
||
|
}
|
||
|
|
||
|
# addExclusiveBuilds(1config, 1name, 2config, 2name)
|
||
|
# Adds two BUILDS which are exclusive to each other.
|
||
|
defineTest(addExclusiveBuilds) {
|
||
|
firstBuild = $$1
|
||
|
firstBuildName = $$2
|
||
|
secondBuild = $$3
|
||
|
secondBuildName = $$4
|
||
|
|
||
|
contains(TEMPLATE, subdirs) {
|
||
|
eval(sub_$${firstBuildName}.target = $$firstBuild)
|
||
|
export(sub_$${firstBuildName}.target)
|
||
|
eval(sub_$${firstBuildName}.CONFIG = recursive)
|
||
|
export(sub_$${firstBuildName}.CONFIG)
|
||
|
eval(sub_$${secondBuildName}.target = $$secondBuild)
|
||
|
export(sub_$${secondBuildName}.target)
|
||
|
eval(sub_$${secondBuildName}.CONFIG = recursive)
|
||
|
export(sub_$${secondBuildName}.CONFIG)
|
||
|
QMAKE_EXTRA_TARGETS += sub_$${firstBuildName} sub_$${secondBuildName}
|
||
|
export(QMAKE_EXTRA_TARGETS)
|
||
|
} else:!build_pass {
|
||
|
first_BUILDS =
|
||
|
second_BUILDS =
|
||
|
suffix_BUILDS = Build
|
||
|
|
||
|
isEmpty(BUILDS): BUILDPERMUTATIONS = $$suffix_BUILDS
|
||
|
else: BUILDPERMUTATIONS = $$BUILDS
|
||
|
|
||
|
for(permutation, BUILDPERMUTATIONS) {
|
||
|
permutation ~= s/$${suffix_BUILDS}$//
|
||
|
isEmpty(permutation): permutationName =
|
||
|
else: permutationName = -$$permutation
|
||
|
# Makefile target rule
|
||
|
eval($${firstBuildName}$${permutation}.target = $${firstBuild}$$lower($${permutationName}))
|
||
|
export($${firstBuildName}$${permutation}.target)
|
||
|
# IDE name
|
||
|
eval($${firstBuildName}$${permutation}.name = $${firstBuildName}$${permutationName})
|
||
|
export($${firstBuildName}$${permutation}.name)
|
||
|
# prl import CONFIG option
|
||
|
eval($${firstBuildName}$${permutation}.PRL_CONFIG = $${firstBuild}$${permutation})
|
||
|
export($${firstBuildName}$${permutation}.PRL_CONFIG)
|
||
|
# Individual CONFIG option
|
||
|
eval($${firstBuildName}$${permutation}.CONFIG = $${firstBuild} $${firstBuildName}Build $$eval($${permutation}.CONFIG))
|
||
|
export($${firstBuildName}$${permutation}.CONFIG)
|
||
|
|
||
|
eval($${secondBuildName}$${permutation}.target = $${secondBuild}$$lower($${permutationName}))
|
||
|
export($${secondBuildName}$${permutation}.target)
|
||
|
eval($${secondBuildName}$${permutation}.name = $${secondBuildName}$${permutationName})
|
||
|
export($${secondBuildName}$${permutation}.name)
|
||
|
eval($${secondBuildName}$${permutation}.PRL_CONFIG = $${secondBuild}$${permutation})
|
||
|
export($${secondBuildName}$${permutation}.PRL_CONFIG)
|
||
|
eval($${secondBuildName}$${permutation}.CONFIG = $${secondBuild} $${secondBuildName}Build $$eval($${permutation}.CONFIG))
|
||
|
export($${secondBuildName}$${permutation}.CONFIG)
|
||
|
|
||
|
first_BUILDS += $${firstBuildName}$${permutation}
|
||
|
second_BUILDS += $${secondBuildName}$${permutation}
|
||
|
}
|
||
|
|
||
|
# A mutual exclusive block.
|
||
|
CONFIG($${firstBuild}, $${firstBuild}|$${secondBuild}): BUILDS = $$first_BUILDS $$second_BUILDS
|
||
|
else: BUILDS = $$second_BUILDS $$first_BUILDS
|
||
|
export(BUILDS)
|
||
|
} else {
|
||
|
eval($${firstBuildName}Build:fixExclusiveOutputDirs($$firstBuild, $$secondBuild, false))
|
||
|
eval($${secondBuildName}Build:fixExclusiveOutputDirs($$secondBuild, $$firstBuild, false))
|
||
|
}
|
||
|
return(true)
|
||
|
}
|