# # 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. QDOC_WIN_INCLUDETEMP= INCLUDE_PATHS=$$INCPATH win32:count(INCLUDE_PATHS, 30, >) { QDOC_WIN_INCLUDETEMP = $$OUT_PWD/qdocincludepaths.inc QDOC_WIN_INCLUDETEMP_CONTENT = for (inc, INCLUDE_PATHS): \ QDOC_WIN_INCLUDETEMP_CONTENT += -I$$inc write_file($$absolute_path($$QDOC_WIN_INCLUDETEMP, $$OUT_PWD), QDOC_WIN_INCLUDETEMP_CONTENT)|error() } isEmpty(QDOC_WIN_INCLUDETEMP) { QDOC_INCLUDE_PATHS=$(INCPATH) } else { QDOC_INCLUDE_PATHS=@$$shell_quote($$QDOC_WIN_INCLUDETEMP) } 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 for (incdir, QMAKE_DEFAULT_INCDIRS) { prepare_docs.commands += -I$$shell_quote($$incdir) generate_docs.commands += -I$$shell_quote($$incdir) } 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 }