Files
gentoo/dev-qt/qttools/qttools-6.12.9999.ebuild
Ionen Wolkens bfb5873f0c dev-qt/qttools: drop llvm23 compat
6.12.9999 (and likely 6.12.0) fails to build due to new code that
is incompatible with 23.

6.11.2 builds, but may not work properly.

Feel it's better to drop this for now, support for 22 is already
still kind of WIP upstream as-is, but will keep it given 21 is
getting rather old.

Fortunately 23 is not default yet, so this shouldn't make people
downgrade unless they explicitly set the slot. Not that most users
will have USE=qdoc set to pull it either way.

Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
2026-09-12 10:53:45 -04:00

121 lines
3.2 KiB
Bash

# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# see QDOC_SUPPORTED_CLANG_VERSIONS in src/qdoc/cmake/QDocConfiguration.cmake
# for officially supported versions, but newer may work
LLVM_COMPAT=( {17..22} )
LLVM_OPTIONAL=1
# behaves very badly when qttools is not already installed, also
# other issues to handle (clang tests flaky depending on version,
# and 3rdparty/ tries to FetchContent gtest)
QT6_RESTRICT_TESTS=1
inherit flag-o-matic llvm-r2 optfeature qt6-build xdg
DESCRIPTION="Qt Tools Collection"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="
+assistant designer distancefieldgenerator gles2-only kmap2qmap
+linguist opengl pixeltool +qdbus qdoc qml qmlls
qtattributionsscanner qtdiag qtplugininfo vulkan +widgets zstd
"
# note that some tools do not *require* widgets but will skip a sub-tool
# if not enabled (e.g. linguist gives lrelease but not the GUI linguist6)
REQUIRED_USE="
assistant? ( widgets )
designer? ( qml widgets )
distancefieldgenerator? ( qml widgets )
pixeltool? ( widgets )
qdoc? ( qml ${LLVM_REQUIRED_USE} )
qmlls? ( assistant qml )
"
RDEPEND="
~dev-qt/qtbase-${PV}:6[widgets?]
assistant? ( ~dev-qt/qtbase-${PV}:6[concurrent,network,sql,sqlite] )
designer? (
~dev-qt/qtbase-${PV}:6[network,xml,zstd=]
zstd? ( app-arch/zstd:= )
)
kmap2qmap? ( ~dev-qt/qtbase-${PV}:6[evdev] )
qdbus? (
~dev-qt/qtbase-${PV}:6[dbus,xml]
)
qdoc? (
$(llvm_gen_dep '
llvm-core/clang:${LLVM_SLOT}=
llvm-core/llvm:${LLVM_SLOT}=
')
)
qml? ( ~dev-qt/qtdeclarative-${PV}:6[widgets?] )
qmlls? ( ~dev-qt/qtdeclarative-${PV}:6[qmlls] )
qtdiag? ( ~dev-qt/qtbase-${PV}:6[network,gles2-only=,vulkan=] )
widgets? ( ~dev-qt/qtbase-${PV}:6[opengl=] )
"
DEPEND="
${RDEPEND}
qtdiag? (
vulkan? ( dev-util/vulkan-headers )
)
"
PATCHES=(
"${FILESDIR}"/${PN}-6.12.0-litehtml-no-unity.patch
)
src_prepare() {
qt6-build_src_prepare
# qttools is picky about clang versions and ignores LLVM_SLOT
sed -e '/find_package/s/${\(LLVM_\)*VERSION_CLEAN}//' \
-i cmake/FindWrapLibClang.cmake || die
}
src_configure() {
# validator.h:25:8: error: type 'struct Validator' ... [-Werror=odr]
use linguist && filter-lto
use qdoc && llvm_chost_setup
local mycmakeargs=(
# prevent the clang test as it can abort due to bug #916098
$(cmake_use_find_package qdoc WrapLibClang)
$(cmake_use_find_package qml Qt6Qml)
$(cmake_use_find_package widgets Qt6Widgets)
$(qt_feature assistant)
$(qt_feature designer)
$(qt_feature distancefieldgenerator)
$(qt_feature kmap2qmap)
$(qt_feature linguist)
$(qt_feature pixeltool)
$(qt_feature qdbus)
$(qt_feature qdoc)
$(qt_feature qtattributionsscanner)
$(qt_feature qtdiag)
$(qt_feature qtplugininfo)
$(usev widgets -DQT_INSTALL_XDG_DESKTOP_ENTRIES=ON)
# USE=qmlls' help plugin may be temporary, upstream has plans to split
# QtHelp into another package so that qtdeclarative can depend on it
# without a circular dependency with qttools
$(cmake_use_find_package qmlls Qt6QmlLSPrivate)
)
qt6-build_src_configure
}
pkg_postinst() {
xdg_pkg_postinst
use assistant &&
optfeature "Qt documentation viewable in assistant" \
'dev-qt/qt-docs:6[qch]' #602296
}