summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/default_post.prf36
-rw-r--r--mkspecs/features/qt_functions.prf26
2 files changed, 31 insertions, 31 deletions
diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf
index 2542cb2f9d..003a73dedf 100644
--- a/mkspecs/features/default_post.prf
+++ b/mkspecs/features/default_post.prf
@@ -50,42 +50,16 @@ QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST
# Let every project have a standard GNU `check' target
!contains(QMAKE_EXTRA_TARGETS, check) {
- # `make check' should iterate through all subdirs
- # (except those with no_default_target or no_check_target)
- contains(TEMPLATE, subdirs) {
- for(subdir, SUBDIRS) {
- subdir_config=$$eval($${subdir}.CONFIG)
- !contains(subdir_config, no_check_target):!contains(subdir_config, no_default_target):check.recurse += $$subdir
- unset(subdir_config)
- }
- !isEmpty(check.recurse) {
- # setup the recurse target only when there is to recurse into
- check.CONFIG = recursive
- check.recurse_target = check
- }
- }
- # `make check' should imply building the project
- else {
- check.depends = first
- }
+ contains(TEMPLATE, subdirs): \
+ prepareRecursiveTarget(check)
+ else: \
+ check.depends = first # `make check' implies build
QMAKE_EXTRA_TARGETS += check
}
-# Let every project have a 'docs' target
!contains(QMAKE_EXTRA_TARGETS, docs) {
contains(TEMPLATE, subdirs) {
- # `make docs' should iterate through all subdirs
- # (except those with no_default_target or no_docs_target)
- !contains(CONFIG, no_docs_target):for(subdir, SUBDIRS) {
- subdir_config = $$eval($${subdir}.CONFIG)
- !contains(subdir_config, no_docs_target):!contains(subdir_config, no_default_target):docs.recurse += $$subdir
- unset(subdir_config)
- }
- !isEmpty(docs.recurse) {
- # setup the recurse target only when there is something to recurse into
- docs.CONFIG = recursive
- docs.recurse_target = docs
- }
+ prepareRecursiveTarget(docs)
} else {
# apps and libs only generate docs if QMAKE_DOCS is set
!isEmpty(QMAKE_DOCS) {
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index f614ad8f07..2d8f81bae1 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -267,3 +267,29 @@ defineTest(packagesExist) {
return(true)
}
+# Prepares target that will iterate through all subdirs (except those
+# with no_default_target or no_{name_of_target}_target. The prepared
+# target must still be manually added to QMAKE_EXTRA_TARGETS.
+defineTest(prepareRecursiveTarget) {
+ target = $$1
+ no_$${target}_target: return()
+
+ for(subdir, SUBDIRS) {
+ subdir_config = $$eval($${subdir}.CONFIG)
+ contains(subdir_config, no_default_target): next()
+ contains(subdir_config, no_$${target}_target): next()
+
+ $${target}.recurse += $$subdir
+ }
+
+ # Set up the recurse target only when there
+ # is something to recurse into.
+ isEmpty($${target}.recurse): return()
+
+ $${target}.CONFIG = recursive
+ $${target}.recurse_target = $${target}
+
+ export($${target}.recurse)
+ export($${target}.CONFIG)
+ export($${target}.recurse_target)
+}