summaryrefslogtreecommitdiff
path: root/dev-qt/qttools
diff options
context:
space:
mode:
Diffstat (limited to 'dev-qt/qttools')
-rw-r--r--dev-qt/qttools/metadata.xml1
-rw-r--r--dev-qt/qttools/qttools-6.11.9999.ebuild119
-rw-r--r--dev-qt/qttools/qttools-6.9999.ebuild8
3 files changed, 125 insertions, 3 deletions
diff --git a/dev-qt/qttools/metadata.xml b/dev-qt/qttools/metadata.xml
index 257a7135bc7c..e3fc7b38eba5 100644
--- a/dev-qt/qttools/metadata.xml
+++ b/dev-qt/qttools/metadata.xml
@@ -10,6 +10,7 @@
<flag name="clang">Enable using libclang for code parsing (linguist/qdoc)</flag>
<flag name="designer">Build Qt Designer</flag>
<flag name="distancefieldgenerator">Build Qt Distance Field Generator</flag>
+ <flag name="kmap2qmap">Build tool to generate keymaps for use on Embedded Linux</flag>
<flag name="linguist">Build Qt Linguist tools (GUI requires USE=widgets and USE=qml)</flag>
<flag name="pixeltool">Build Qt Pixeltool</flag>
<flag name="qdbus">Build the Qt D-Bus Interface (D-Bus Viewer requires USE=widgets)</flag>
diff --git a/dev-qt/qttools/qttools-6.11.9999.ebuild b/dev-qt/qttools/qttools-6.11.9999.ebuild
new file mode 100644
index 000000000000..18242da673dc
--- /dev/null
+++ b/dev-qt/qttools/qttools-6.11.9999.ebuild
@@ -0,0 +1,119 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( {17..21} ) # see .cmake.conf for minimum
+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 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]
+ !dev-qt/assistant:5
+ )
+ designer? (
+ ~dev-qt/qtbase-${PV}:6[network,xml,zstd=]
+ zstd? ( app-arch/zstd:= )
+ !<dev-qt/designer-5.15.18-r1:5
+ )
+ kmap2qmap? ( ~dev-qt/qtbase-${PV}:6[evdev] )
+ linguist? (
+ widgets? ( !dev-qt/linguist:5 )
+ )
+ qdbus? (
+ ~dev-qt/qtbase-${PV}:6[dbus,xml]
+ widgets? ( !dev-qt/qdbusviewer:5 )
+ )
+ 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 )
+ )
+"
+
+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() {
+ 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
+}
diff --git a/dev-qt/qttools/qttools-6.9999.ebuild b/dev-qt/qttools/qttools-6.9999.ebuild
index eb974cfbd2f1..18242da673dc 100644
--- a/dev-qt/qttools/qttools-6.9999.ebuild
+++ b/dev-qt/qttools/qttools-6.9999.ebuild
@@ -20,9 +20,9 @@ if [[ ${QT6_BUILD_TYPE} == release ]]; then
fi
IUSE="
- +assistant designer distancefieldgenerator gles2-only +linguist
- opengl pixeltool +qdbus qdoc qml qmlls qtattributionsscanner qtdiag
- qtplugininfo vulkan +widgets zstd
+ +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)
@@ -46,6 +46,7 @@ RDEPEND="
zstd? ( app-arch/zstd:= )
!<dev-qt/designer-5.15.18-r1:5
)
+ kmap2qmap? ( ~dev-qt/qtbase-${PV}:6[evdev] )
linguist? (
widgets? ( !dev-qt/linguist:5 )
)
@@ -90,6 +91,7 @@ src_configure() {
$(qt_feature assistant)
$(qt_feature designer)
$(qt_feature distancefieldgenerator)
+ $(qt_feature kmap2qmap)
$(qt_feature linguist)
$(qt_feature pixeltool)
$(qt_feature qdbus)