From ce6f997966996d78625026f478c65268839edaa5 Mon Sep 17 00:00:00 2001 From: Mehdi Chinoune Date: Wed, 8 Sep 2021 19:37:39 +0100 Subject: [PATCH] [new-package] qt6-doc 6.1.3 --- .../002-fix-qtdocs-helpers-cmake.patch | 15 +++ mingw-w64-qt6-base/PKGBUILD | 11 +- mingw-w64-qt6-doc/001-qt6-doc-bindir.patch | 109 ++++++++++++++++++ .../002-fix-qtdocs-helpers-cmake.patch | 15 +++ mingw-w64-qt6-doc/PKGBUILD | 79 +++++++++++++ 5 files changed, 225 insertions(+), 4 deletions(-) create mode 100644 mingw-w64-qt6-base/002-fix-qtdocs-helpers-cmake.patch create mode 100644 mingw-w64-qt6-doc/001-qt6-doc-bindir.patch create mode 100644 mingw-w64-qt6-doc/002-fix-qtdocs-helpers-cmake.patch create mode 100644 mingw-w64-qt6-doc/PKGBUILD diff --git a/mingw-w64-qt6-base/002-fix-qtdocs-helpers-cmake.patch b/mingw-w64-qt6-base/002-fix-qtdocs-helpers-cmake.patch new file mode 100644 index 0000000000..21dbfcd721 --- /dev/null +++ b/mingw-w64-qt6-base/002-fix-qtdocs-helpers-cmake.patch @@ -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") diff --git a/mingw-w64-qt6-base/PKGBUILD b/mingw-w64-qt6-base/PKGBUILD index 8e34e0defd..1493e2f3ab 100644 --- a/mingw-w64-qt6-base/PKGBUILD +++ b/mingw-w64-qt6-base/PKGBUILD @@ -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() { diff --git a/mingw-w64-qt6-doc/001-qt6-doc-bindir.patch b/mingw-w64-qt6-doc/001-qt6-doc-bindir.patch new file mode 100644 index 0000000000..b66118a91a --- /dev/null +++ b/mingw-w64-qt6-doc/001-qt6-doc-bindir.patch @@ -0,0 +1,109 @@ +From 582fdf06d179ee17ff68c67fb2f55ac10b7b6e4a Mon Sep 17 00:00:00 2001 +From: Joerg Bornemann +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 +--- + 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 + diff --git a/mingw-w64-qt6-doc/002-fix-qtdocs-helpers-cmake.patch b/mingw-w64-qt6-doc/002-fix-qtdocs-helpers-cmake.patch new file mode 100644 index 0000000000..21dbfcd721 --- /dev/null +++ b/mingw-w64-qt6-doc/002-fix-qtdocs-helpers-cmake.patch @@ -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") diff --git a/mingw-w64-qt6-doc/PKGBUILD b/mingw-w64-qt6-doc/PKGBUILD new file mode 100644 index 0000000000..2efad7df04 --- /dev/null +++ b/mingw-w64-qt6-doc/PKGBUILD @@ -0,0 +1,79 @@ +# Contributor: Mehdi Chinoune + +_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} +}