summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/examples.pro2
-rw-r--r--mkspecs/features/default_post.prf27
-rw-r--r--src/corelib/corelib.pro4
-rw-r--r--src/corelib/doc/doc.pri3
-rw-r--r--src/network/doc/doc.pri3
-rw-r--r--src/network/network.pro4
-rw-r--r--src/sql/doc/doc.pri3
-rw-r--r--src/sql/sql.pro4
-rw-r--r--src/tools/bootstrap/bootstrap.pro3
-rw-r--r--src/tools/qdoc/qdoc.pro6
-rw-r--r--src/xml/doc/doc.pri3
-rw-r--r--src/xml/xml.pro4
-rw-r--r--tests/tests.pro1
13 files changed, 51 insertions, 16 deletions
diff --git a/examples/examples.pro b/examples/examples.pro
index 2180d18587..7ce42d7fe7 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -1,4 +1,6 @@
TEMPLATE = subdirs
+CONFIG += no_docs_target
+
SUBDIRS = \
network \
statemachine \
diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf
index 874b4bf424..0a0fd8dfa8 100644
--- a/mkspecs/features/default_post.prf
+++ b/mkspecs/features/default_post.prf
@@ -64,3 +64,30 @@ QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST
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
+ }
+ } else {
+ # apps and libs only generate docs if QMAKE_DOCS is set
+ !isEmpty(QMAKE_DOCS) {
+ !exists($$QMAKE_DOCS):error("Cannot find documentation specification file $$QMAKE_DOCS")
+ exists($$[QT_INSTALL_DOCS]):QMAKE_DOCS_INDEX *= $$[QT_INSTALL_DOCS]
+ qtPrepareTool(QDOC, qdoc)
+ for(index, QMAKE_DOCS_INDEX):QDOC_INDEX += -indexdir $$index
+ docs.commands += $$QDOC $$QMAKE_DOCS_OPTIONS $$QDOC_INDEX $$QMAKE_DOCS
+ }
+ }
+ QMAKE_EXTRA_TARGETS += docs
+}
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro
index d98cebb672..4856c1b5fb 100644
--- a/src/corelib/corelib.pro
+++ b/src/corelib/corelib.pro
@@ -16,6 +16,9 @@ load(qt_module_config)
HEADERS += $$QT_SOURCE_TREE/src/corelib/qtcoreversion.h
+QMAKE_DOCS = $$PWD/doc/qtcore.qdocconf
+QMAKE_DOCS_INDEX = ../../doc
+
include(animation/animation.pri)
include(arch/arch.pri)
include(global/global.pri)
@@ -30,7 +33,6 @@ include(codecs/codecs.pri)
include(statemachine/statemachine.pri)
include(mimetypes/mimetypes.pri)
include(xml/xml.pri)
-include(doc/doc.pri)
mac|darwin {
!ios {
diff --git a/src/corelib/doc/doc.pri b/src/corelib/doc/doc.pri
deleted file mode 100644
index ed970d7592..0000000000
--- a/src/corelib/doc/doc.pri
+++ /dev/null
@@ -1,3 +0,0 @@
-qtPrepareTool(QDOC, qdoc)
-docs.commands += $$QDOC $$QT.core.sources/doc/qtcore.qdocconf
-QMAKE_EXTRA_TARGETS += docs
diff --git a/src/network/doc/doc.pri b/src/network/doc/doc.pri
deleted file mode 100644
index 7ca0ad07d4..0000000000
--- a/src/network/doc/doc.pri
+++ /dev/null
@@ -1,3 +0,0 @@
-qtPrepareTool(QDOC, qdoc)
-docs.commands += $$QDOC $$QT.network.sources/doc/qtnetwork.qdocconf
-QMAKE_EXTRA_TARGETS += docs
diff --git a/src/network/network.pro b/src/network/network.pro
index a6597338f5..3e1bc6d4e5 100644
--- a/src/network/network.pro
+++ b/src/network/network.pro
@@ -24,9 +24,11 @@ load(qt_module_config)
HEADERS += $$QT_SOURCE_TREE/src/network/qtnetworkversion.h
+QMAKE_DOCS = $$PWD/doc/qtnetwork.qdocconf
+QMAKE_DOCS_INDEX = ../../doc
+
include(access/access.pri)
include(bearer/bearer.pri)
-include(doc/doc.pri)
include(kernel/kernel.pri)
include(socket/socket.pri)
include(ssl/ssl.pri)
diff --git a/src/sql/doc/doc.pri b/src/sql/doc/doc.pri
deleted file mode 100644
index 2bc2e005d4..0000000000
--- a/src/sql/doc/doc.pri
+++ /dev/null
@@ -1,3 +0,0 @@
-qtPrepareTool(QDOC, qdoc)
-docs.commands += $$QDOC $$QT.sql.sources/doc/qtsql.qdocconf
-QMAKE_EXTRA_TARGETS += docs
diff --git a/src/sql/sql.pro b/src/sql/sql.pro
index e3f81f3498..c2345d92ef 100644
--- a/src/sql/sql.pro
+++ b/src/sql/sql.pro
@@ -21,7 +21,9 @@ DEFINES += QT_NO_CAST_FROM_ASCII
PRECOMPILED_HEADER = ../corelib/global/qt_pch.h
SQL_P = sql
-include(doc/doc.pri)
+QMAKE_DOCS = $$PWD/doc/qtsql.qdocconf
+QMAKE_DOCS_INDEX = ../../doc
+
include(kernel/kernel.pri)
include(drivers/drivers.pri)
include(models/models.pri)
diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro
index 21fc2f9ca5..37b4c3dd1d 100644
--- a/src/tools/bootstrap/bootstrap.pro
+++ b/src/tools/bootstrap/bootstrap.pro
@@ -127,3 +127,6 @@ freeze_target.target = freeze
freeze_target.commands =
freeze_target.depends = first
QMAKE_EXTRA_TARGETS += freeze_target
+docs.commands =
+docs.depends = first
+QMAKE_EXTRA_TARGETS += docs
diff --git a/src/tools/qdoc/qdoc.pro b/src/tools/qdoc/qdoc.pro
index 484b0c6ba1..1e570583f5 100644
--- a/src/tools/qdoc/qdoc.pro
+++ b/src/tools/qdoc/qdoc.pro
@@ -116,4 +116,10 @@ QMAKE_EXTRA_TARGETS += html-docs qch-docs
target.path = $$[QT_HOST_BINS]
INSTALLS += target
+
+# Ensure that qdoc is built before we generate the docs
+docs.commands =
+docs.depends = first
+QMAKE_EXTRA_TARGET += docs
+
load(qt_targets)
diff --git a/src/xml/doc/doc.pri b/src/xml/doc/doc.pri
deleted file mode 100644
index d02e45e64e..0000000000
--- a/src/xml/doc/doc.pri
+++ /dev/null
@@ -1,3 +0,0 @@
-qtPrepareTool(QDOC, qdoc)
-docs.commands += $$QDOC $$QT.xml.sources/doc/qtxml.qdocconf
-QMAKE_EXTRA_TARGETS += docs
diff --git a/src/xml/xml.pro b/src/xml/xml.pro
index b8c24496ae..2fff0218e4 100644
--- a/src/xml/xml.pro
+++ b/src/xml/xml.pro
@@ -16,6 +16,9 @@ load(qt_module_config)
HEADERS += $$QT_SOURCE_TREE/src/xml/qtxmlversion.h
+QMAKE_DOCS = $$PWD/doc/qtxml.qdocconf
+QMAKE_DOCS_INDEX = ../../doc
+
PRECOMPILED_HEADER = ../corelib/global/qt_pch.h
win32-borland {
@@ -23,6 +26,5 @@ win32-borland {
QMAKE_CXXFLAGS_WARN_ON += -w-use
}
-include(doc/doc.pri)
include(dom/dom.pri)
include(sax/sax.pri)
diff --git a/tests/tests.pro b/tests/tests.pro
index 0c933681ee..0f50930774 100644
--- a/tests/tests.pro
+++ b/tests/tests.pro
@@ -1,4 +1,5 @@
TEMPLATE = subdirs
+CONFIG += no_docs_target
SUBDIRS = auto
# benchmarks in debug mode is rarely sensible