Merge pull request #9555 from MehdiChinoune/qt6-doc

[new-package] qt6-doc 6.1.3
This commit is contained in:
Christoph Reiter
2021-09-09 19:32:43 +02:00
committed by GitHub
5 changed files with 225 additions and 4 deletions

View File

@@ -0,0 +1,15 @@
--- a/cmake/QtDocsHelpers.cmake
+++ b/cmake/QtDocsHelpers.cmake
@@ -37,9 +37,9 @@
set(doc_tools_dir "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}/${INSTALL_BINDIR}")
endif()
- set(qdoc_bin "${doc_tools_dir}/qdoc${CMAKE_EXECUTABLE_SUFFIX}")
- set(qtattributionsscanner_bin "${doc_tools_dir}/qtattributionsscanner${CMAKE_EXECUTABLE_SUFFIX}")
- set(qhelpgenerator_bin "${doc_tools_dir}/qhelpgenerator${CMAKE_EXECUTABLE_SUFFIX}")
+ set(qdoc_bin "${doc_tools_dir}/qdoc-qt6${CMAKE_EXECUTABLE_SUFFIX}")
+ set(qtattributionsscanner_bin "${doc_tools_dir}/qtattributionsscanner-qt6${CMAKE_EXECUTABLE_SUFFIX}")
+ set(qhelpgenerator_bin "${doc_tools_dir}/qhelpgenerator-qt6${CMAKE_EXECUTABLE_SUFFIX}")
get_target_property(target_type ${target} TYPE)
if (NOT target_type STREQUAL "INTERFACE_LIBRARY")

View File

@@ -6,7 +6,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-${_realname}-debug")
_qtver=6.1.3
pkgver=${_qtver/-/}
pkgrel=1
pkgrel=2
arch=(any)
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url='https://www.qt.io'
@@ -35,9 +35,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"rsync")
_pkgfn="${_realname/6-/}-everywhere-src-${_qtver}"
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/$_qtver/submodules/$_pkgfn.tar.xz"
001-appending-qt6-to-remove-qt5-conflict.patch)
001-appending-qt6-to-remove-qt5-conflict.patch
002-fix-qtdocs-helpers-cmake.patch)
sha256sums=('1e9abb2ea4daa0fd11f46fc871d9e896b916e1b7130fed74c83d66221bb4fe78'
'76c1af04c635f683b0ef314ead96d71ab6f54a28d4572a65087debbbc484ef54')
'76c1af04c635f683b0ef314ead96d71ab6f54a28d4572a65087debbbc484ef54'
'ac6dae470b0e8e65e4e86b67bcf9486810dd35247a41fbfdac92800de0261151')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
@@ -52,7 +54,8 @@ prepare() {
cd $srcdir/${_pkgfn}
apply_patch_with_msg \
001-appending-qt6-to-remove-qt5-conflict.patch
001-appending-qt6-to-remove-qt5-conflict.patch \
002-fix-qtdocs-helpers-cmake.patch
}
build() {

View File

@@ -0,0 +1,109 @@
From 582fdf06d179ee17ff68c67fb2f55ac10b7b6e4a Mon Sep 17 00:00:00 2001
From: Joerg Bornemann <joerg.bornemann@qt.io>
Date: Wed, 28 Apr 2021 09:23:59 +0200
Subject: Make a documentation-only build possible
Packagers usually build Qt per repo, but the documentation must be built
from the full Qt source archive to ensure that inter-repo links are set
up correctly. When building the documentation, it's desirable to avoid
building tools and re-use to tools of an existing Qt build.
One now can do a documentation-only build by configuring Qt like this:
cmake /path/to/Qt/source -GNinja \
-DQT_HOST_PATH=/path/to/Qt/installation
and build the documentation with
ninja docs
To avoid building tools, this patch removes the DEPENDS arguments from
some add_custom_target calls in QtDocsHelpers.cmake and makes another
one conditional. The removed dependencies are added at the end of
qt_internal_add_docs. Adding of tool dependencies is not done if
QT_HOST_PATH is set.
Fixes: QTBUG-88441
Change-Id: I3b7a908e22d252d2edcdc1dd522a78b8ad6c487e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
---
cmake/QtDocsHelpers.cmake | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/cmake/QtDocsHelpers.cmake b/cmake/QtDocsHelpers.cmake
index 593a72c90e..e2f75db213 100644
--- a/cmake/QtDocsHelpers.cmake
+++ b/cmake/QtDocsHelpers.cmake
@@ -31,7 +31,11 @@ function(qt_internal_add_docs)
return()
endif()
- if(QT_SUPERBUILD)
+ set(tool_dependencies_enabled TRUE)
+ if(NOT "${QT_HOST_PATH}" STREQUAL "")
+ set(tool_dependencies_enabled FALSE)
+ set(doc_tools_dir "${QT_HOST_PATH}/${QT${PROJECT_VERSION_MAJOR}_HOST_INFO_BINDIR}")
+ elseif(QT_SUPERBUILD)
set(doc_tools_dir "${QtBase_BINARY_DIR}/${INSTALL_BINDIR}")
else()
set(doc_tools_dir "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}/${INSTALL_BINDIR}")
@@ -85,7 +89,6 @@ function(qt_internal_add_docs)
# qtattributionsscanner
add_custom_target(qattributionsscanner_${target}
- DEPENDS ${qattributionsscanner_bin}
COMMAND ${qtattributionsscanner_bin}
${PROJECT_SOURCE_DIR}
--filter "QDocModule=${doc_target}"
@@ -120,7 +123,6 @@ function(qt_internal_add_docs)
)
add_custom_target(prepare_docs_${target}
- DEPENDS ${qdoc_bin}
COMMAND ${CMAKE_COMMAND} -E env ${qdoc_env_args}
${qdoc_bin}
${prepare_qdoc_args}
@@ -139,8 +141,12 @@ function(qt_internal_add_docs)
)
foreach(target_prefix generate_top_level_docs generate_repo_docs generate_docs)
+ set(depends_arg "")
+ if(tool_dependencies_enabled)
+ set(depends_arg DEPENDS ${qdoc_bin})
+ endif()
add_custom_target(${target_prefix}_${target}
- DEPENDS ${qdoc_bin}
+ ${depends_arg}
COMMAND ${CMAKE_COMMAND} -E env ${qdoc_env_args} ${qdoc_bin} ${generate_qdocs_args})
endforeach()
@@ -158,8 +164,12 @@ function(qt_internal_add_docs)
set(qch_file_path ${qdoc_qch_output_dir}/${qch_file_name})
foreach(target_prefix qch_top_level_docs qch_repo_docs qch_docs)
+ set(depends_arg "")
+ if(tool_dependencies_enabled)
+ set(depends_arg DEPENDS ${qhelpgenerator_bin})
+ endif()
add_custom_target(${target_prefix}_${target}
- DEPENDS ${qhelpgenerator_bin}
+ ${depends_arg}
COMMAND ${qhelpgenerator_bin}
"${qdoc_output_dir}/${doc_target}.qhp"
-o "${qch_file_path}"
@@ -218,7 +228,9 @@ function(qt_internal_add_docs)
# Make sure that the necessary tools are built when running,
# for example 'cmake --build . --target generate_docs'.
- qt_internal_add_doc_tool_dependency(qattributionsscanner_${target} qtattributionsscanner)
- qt_internal_add_doc_tool_dependency(prepare_docs_${target} qdoc)
- qt_internal_add_doc_tool_dependency(qch_docs_${target} qhelpgenerator)
+ if(tool_dependencies_enabled)
+ qt_internal_add_doc_tool_dependency(qattributionsscanner_${target} qtattributionsscanner)
+ qt_internal_add_doc_tool_dependency(prepare_docs_${target} qdoc)
+ qt_internal_add_doc_tool_dependency(qch_docs_${target} qhelpgenerator)
+ endif()
endfunction()
--
cgit v1.2.1

View File

@@ -0,0 +1,15 @@
--- a/cmake/QtDocsHelpers.cmake
+++ b/cmake/QtDocsHelpers.cmake
@@ -37,9 +37,9 @@
set(doc_tools_dir "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}/${INSTALL_BINDIR}")
endif()
- set(qdoc_bin "${doc_tools_dir}/qdoc${CMAKE_EXECUTABLE_SUFFIX}")
- set(qtattributionsscanner_bin "${doc_tools_dir}/qtattributionsscanner${CMAKE_EXECUTABLE_SUFFIX}")
- set(qhelpgenerator_bin "${doc_tools_dir}/qhelpgenerator${CMAKE_EXECUTABLE_SUFFIX}")
+ set(qdoc_bin "${doc_tools_dir}/qdoc-qt6${CMAKE_EXECUTABLE_SUFFIX}")
+ set(qtattributionsscanner_bin "${doc_tools_dir}/qtattributionsscanner-qt6${CMAKE_EXECUTABLE_SUFFIX}")
+ set(qhelpgenerator_bin "${doc_tools_dir}/qhelpgenerator-qt6${CMAKE_EXECUTABLE_SUFFIX}")
get_target_property(target_type ${target} TYPE)
if (NOT target_type STREQUAL "INTERFACE_LIBRARY")

View File

@@ -0,0 +1,79 @@
# Contributor: Mehdi Chinoune <mehdi.chinoune@hotmail.com>
_realname=qt6-doc
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
_qtver=6.1.3
pkgver=${_qtver/-/}
pkgrel=1
arch=(any)
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url='https://www.qt.io'
license=(GPL3 LGPL3 FDL custom)
pkgdesc='Classes for displaying the contents of SVG files (mingw-w64)'
depends=("${MINGW_PACKAGE_PREFIX}-qt6-base")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-qt6-tools"
"${MINGW_PACKAGE_PREFIX}-clang"
"${MINGW_PACKAGE_PREFIX}-clang-tools-extra"
"${MINGW_PACKAGE_PREFIX}-polly"
"${MINGW_PACKAGE_PREFIX}-vulkan-headers"
"${MINGW_PACKAGE_PREFIX}-libmariadbclient"
$( [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-firebird2" )
"${MINGW_PACKAGE_PREFIX}-postgresql")
groups=(${MINGW_PACKAGE_PREFIX}-qt6)
_pkgfn="qt-everywhere-src-${_qtver}"
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/$_qtver/single/$_pkgfn.tar.xz"
001-qt6-doc-bindir.patch
002-fix-qtdocs-helpers-cmake.patch)
sha256sums=('552342a81fa76967656b0301233b4b586d36967fad5cd110765347aebe07413c'
'7ab018729ae933f7f4ba0a4783f8f66277c681aa9dd7657ecdf011120b56bda1'
'ac6dae470b0e8e65e4e86b67bcf9486810dd35247a41fbfdac92800de0261151')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
for _patch in "$@"
do
msg2 "Applying ${_patch}"
patch -Nbp1 -i "${srcdir}/${_patch}"
done
}
prepare() {
cd $srcdir/${_pkgfn}
cd qtbase
apply_patch_with_msg \
001-qt6-doc-bindir.patch \
002-fix-qtdocs-helpers-cmake.patch
}
build() {
cd ${srcdir}
[[ -d build-${MSYSTEM} ]] && rm -rf build-${MSYSTEM}
mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM}
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DQT_HOST_PATH=${MINGW_PREFIX} \
-DINSTALL_INCLUDEDIR=include/qt6 \
-DINSTALL_ARCHDATADIR=share/qt6 \
-DINSTALL_DATADIR=share/qt6 \
-DINSTALL_MKSPECSDIR=share/qt6/mkspecs \
-DINSTALL_DESCRIPTIONSDIR=share/qt6/modules \
-DINSTALL_DOCDIR=share/qt6/doc \
../${_pkgfn}
cmake --build . --target docs
}
package() {
DESTDIR=${pkgdir} cmake --build build-${MSYSTEM} --target install_docs
install -d "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname}
install -Dm644 $_pkgfn/LICENSE* -t "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname}
}