2022-05-14 17:39:13 +08:00
|
|
|
#
|
|
|
|
# W A R N I N G
|
|
|
|
# -------------
|
|
|
|
#
|
|
|
|
# This file is not part of the Qt API. It exists purely as an
|
|
|
|
# implementation detail. It may change from version to version
|
|
|
|
# without notice, or even be removed.
|
|
|
|
#
|
|
|
|
# We mean it.
|
|
|
|
#
|
|
|
|
|
|
|
|
!exists($$QMAKE_DOCS): error("Cannot find documentation specification file $$QMAKE_DOCS")
|
|
|
|
|
|
|
|
qtver.name = QT_VERSION
|
|
|
|
qtver.value = $$VERSION
|
|
|
|
isEmpty(qtver.value): qtver.value = $$MODULE_VERSION
|
|
|
|
isEmpty(qtver.value): error("No version for documentation specified.")
|
|
|
|
qtmver.name = QT_VER
|
|
|
|
qtmver.value = $$replace(qtver.value, ^(\\d+\\.\\d+).*$, \\1)
|
|
|
|
qtvertag.name = QT_VERSION_TAG
|
|
|
|
qtvertag.value = $$replace(qtver.value, \\.,)
|
|
|
|
qtdocs.name = QT_INSTALL_DOCS
|
|
|
|
qtdocs.value = $$[QT_INSTALL_DOCS/src]
|
|
|
|
builddir.name = BUILDDIR
|
|
|
|
builddir.value = $$OUT_PWD
|
|
|
|
QT_TOOL_ENV = qtver qtmver qtvertag qtdocs builddir
|
|
|
|
qtPrepareTool(QDOC, qdoc)
|
|
|
|
QT_TOOL_ENV =
|
|
|
|
|
|
|
|
# On Windows, put the includes into a .inc file which QDoc will read, if the project
|
|
|
|
# has too many includes. We do this to overcome a command-line limit on Windows.
|
2023-05-05 09:20:25 +08:00
|
|
|
QDOC_WIN_INCLUDETEMP=
|
2022-05-14 17:39:13 +08:00
|
|
|
INCLUDE_PATHS=$$INCPATH
|
|
|
|
win32:count(INCLUDE_PATHS, 30, >) {
|
2023-05-05 09:20:25 +08:00
|
|
|
QDOC_WIN_INCLUDETEMP = $$OUT_PWD/qdocincludepaths.inc
|
|
|
|
QDOC_WIN_INCLUDETEMP_CONTENT =
|
2022-05-14 17:39:13 +08:00
|
|
|
for (inc, INCLUDE_PATHS): \
|
2023-05-05 09:20:25 +08:00
|
|
|
QDOC_WIN_INCLUDETEMP_CONTENT += -I$$inc
|
|
|
|
write_file($$absolute_path($$QDOC_WIN_INCLUDETEMP, $$OUT_PWD), QDOC_WIN_INCLUDETEMP_CONTENT)|error()
|
2022-05-14 17:39:13 +08:00
|
|
|
}
|
|
|
|
|
2023-05-05 09:20:25 +08:00
|
|
|
isEmpty(QDOC_WIN_INCLUDETEMP) {
|
2022-05-14 17:39:13 +08:00
|
|
|
QDOC_INCLUDE_PATHS=$(INCPATH)
|
|
|
|
} else {
|
2023-05-05 09:20:25 +08:00
|
|
|
QDOC_INCLUDE_PATHS=@$$shell_quote($$QDOC_WIN_INCLUDETEMP)
|
2022-05-14 17:39:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
macos: QDOC_INCLUDE_PATHS += $$join(QMAKE_DEFAULT_INCDIRS," -I","-I")
|
|
|
|
|
|
|
|
!build_online_docs: qtPrepareTool(QHELPGENERATOR, qhelpgenerator)
|
|
|
|
|
|
|
|
qtPrepareTool(QTATTRIBUTIONSSCANNER, qtattributionsscanner)
|
|
|
|
|
|
|
|
# qtPrepareTool() must be called outside a build pass, as it protects
|
|
|
|
# against concurrent wrapper creation by omitting it during build passes.
|
|
|
|
# However, creating the actual targets is reserved to the build passes.
|
|
|
|
debug_and_release:!build_pass: return()
|
|
|
|
|
|
|
|
load(qt_build_paths)
|
|
|
|
QMAKE_DOCS_BASE_OUTDIR = $$MODULE_BASE_OUTDIR/doc
|
|
|
|
|
|
|
|
QMAKE_DOCS_TARGET = $$replace(QMAKE_DOCS, ^(.*/)?(.*)\\.qdocconf$, \\2)
|
|
|
|
isEmpty(QMAKE_DOCS_TARGETDIR): QMAKE_DOCS_TARGETDIR = $$QMAKE_DOCS_TARGET
|
|
|
|
QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR
|
|
|
|
|
|
|
|
QDOC += -outputdir $$shell_quote($$QMAKE_DOCS_OUTPUTDIR)
|
|
|
|
!build_online_docs: \
|
|
|
|
QDOC += -installdir $$shell_quote($$[QT_INSTALL_DOCS])
|
|
|
|
PREP_DOC_INDEXES =
|
|
|
|
DOC_INDEXES =
|
|
|
|
!isEmpty(QTREPOS) {
|
|
|
|
prepare_docs {
|
|
|
|
# This is not for linking, but for providing type information.
|
|
|
|
mps =
|
|
|
|
deps = $$replace(QT, -private$, )
|
|
|
|
deps = $$resolve_depends(deps, "QT.")
|
|
|
|
for (d, deps): \
|
|
|
|
mps += $$dirname(QT.$${d}.libs)
|
|
|
|
mps = $$unique(mps)
|
|
|
|
for (mp, mps): \
|
|
|
|
PREP_DOC_INDEXES += -indexdir $$shell_quote($$mp/doc)
|
|
|
|
}
|
|
|
|
for(qrep, QTREPOS): \
|
|
|
|
DOC_INDEXES += -indexdir $$shell_quote($$qrep/doc)
|
|
|
|
} else {
|
|
|
|
prepare_docs: \
|
|
|
|
PREP_DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
|
|
|
|
DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
|
|
|
|
}
|
|
|
|
|
|
|
|
qtattributionsscanner.target = qtattributionsscanner
|
|
|
|
qtattributionsscanner.commands = $$QTATTRIBUTIONSSCANNER $$shell_quote($$MODULE_BASE_INDIR) \
|
|
|
|
--filter "QDocModule=$$QMAKE_DOCS_TARGET" -o $$shell_quote($$OUT_PWD/codeattributions.qdoc)
|
|
|
|
qtattributionsscanner.CONFIG += phony
|
|
|
|
QMAKE_EXTRA_TARGETS += qtattributionsscanner
|
|
|
|
|
|
|
|
doc_command = $$QDOC $$QMAKE_DOCS
|
|
|
|
prepare_docs {
|
|
|
|
prepare_docs.commands += $$doc_command -prepare $$PREP_DOC_INDEXES -no-link-errors $$QDOC_INCLUDE_PATHS
|
|
|
|
generate_docs.commands += $$doc_command -generate $$DOC_INDEXES $$QDOC_INCLUDE_PATHS
|
|
|
|
prepare_docs.depends += qtattributionsscanner
|
|
|
|
} else {
|
|
|
|
html_docs.commands += $$doc_command $$DOC_INDEXES $(QDOC_INCLUDE_PATHS)
|
|
|
|
html_docs.depends += qtattributionsscanner
|
|
|
|
}
|
|
|
|
|
|
|
|
!build_online_docs {
|
|
|
|
qch_docs.commands = $$QHELPGENERATOR $$shell_quote($$QMAKE_DOCS_OUTPUTDIR/$${QMAKE_DOCS_TARGET}.qhp) -o $$shell_quote($$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch)
|
|
|
|
|
|
|
|
inst_html_docs.files = $$QMAKE_DOCS_OUTPUTDIR
|
|
|
|
inst_html_docs.path = $$[QT_INSTALL_DOCS]
|
|
|
|
inst_html_docs.CONFIG += no_check_exist directory no_default_install no_build
|
|
|
|
INSTALLS += inst_html_docs
|
|
|
|
|
|
|
|
inst_qch_docs.files = $$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch
|
|
|
|
inst_qch_docs.path = $$[QT_INSTALL_DOCS]
|
|
|
|
inst_qch_docs.CONFIG += no_check_exist no_default_install no_build
|
|
|
|
INSTALLS += inst_qch_docs
|
|
|
|
|
|
|
|
install_html_docs.depends = install_inst_html_docs
|
|
|
|
uninstall_html_docs.depends = uninstall_inst_html_docs
|
|
|
|
install_qch_docs.depends = install_inst_qch_docs
|
|
|
|
uninstall_qch_docs.depends = uninstall_inst_qch_docs
|
|
|
|
install_docs.depends = install_html_docs install_qch_docs
|
|
|
|
uninstall_docs.depends = uninstall_html_docs uninstall_qch_docs
|
|
|
|
}
|