commit:     ed529e6ecf83a74ca626dcdff04a133b6675c188
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Apr  2 15:34:53 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Apr  2 15:50:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed529e6e

dev-qt/qt-creator: install Devel component with IUSE=plugin-dev

Tried to compile Qt Creator's HelloWorld plugin externally and it built
fine with the USE enabled.

Debated installing unconditionally, but it installs quite a lot of
extras. Unsure about the IUSE name choice but it should hopefully do
(did feel IUSE=devel would be a bit too generic sounding).

Went for a bit hacky solution (for now) given --component integrates
poorly with cmake.eclass and does not seem(?) other ebuilds have needed
to do this yet in ::gentoo for ideas.

Closes: https://bugs.gentoo.org/928423
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qt-creator/metadata.xml             |  3 ++-
 dev-qt/qt-creator/qt-creator-12.0.2.ebuild | 12 ++++++++++--
 dev-qt/qt-creator/qt-creator-9999.ebuild   | 12 ++++++++++--
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/dev-qt/qt-creator/metadata.xml b/dev-qt/qt-creator/metadata.xml
index fcd44daa8386..89e60ab1d919 100644
--- a/dev-qt/qt-creator/metadata.xml
+++ b/dev-qt/qt-creator/metadata.xml
@@ -13,8 +13,9 @@
                <flag name="clang">Build clang-based plugins for C/C++ 
development (code model, formatting, static analysis)</flag>
                <flag name="designer">Enable designer for QtWidgets-based 
UIs</flag>
                <flag name="help">Enable the integrated 
<pkg>dev-qt/qt-docs</pkg> viewer (also needed for examples)</flag>
-               <flag name="serialterminal">Build the serial terminal 
plugin</flag>
+               <flag name="plugin-dev">Install the 'Devel' component needed to 
build external Qt Creator plugins</flag>
                <flag name="qmldesigner">Build QmlDesigner and related plugins 
(Insight, StudioWelcome)</flag>
+               <flag name="serialterminal">Build the serial terminal 
plugin</flag>
                <flag name="tracing">Build plugins requiring tracing 
capabilities (CtfVisualizer, PerfProfiler, QmlProfiler)</flag>
                <flag name="webengine">Use <pkg>dev-qt/qtwebengine</pkg> with 
the help USE rather than bundled litehtml</flag>
        </use>

diff --git a/dev-qt/qt-creator/qt-creator-12.0.2.ebuild 
b/dev-qt/qt-creator/qt-creator-12.0.2.ebuild
index 9e674d8b1aa3..84a477ae119f 100644
--- a/dev-qt/qt-creator/qt-creator-12.0.2.ebuild
+++ b/dev-qt/qt-creator/qt-creator-12.0.2.ebuild
@@ -34,8 +34,8 @@ HOMEPAGE="https://www.qt.io/product/development-tools";
 LICENSE="GPL-3"
 SLOT="0"
 IUSE="
-       +clang +designer doc +help qmldesigner serialterminal
-       +svg test +tracing webengine
+       +clang +designer doc +help plugin-dev qmldesigner
+       serialterminal +svg test +tracing webengine
 "
 REQUIRED_USE="clang? ( ${LLVM_REQUIRED_USE} )"
 RESTRICT="!test? ( test )"
@@ -97,6 +97,14 @@ src_prepare() {
        # needed for finding docs at runtime in PF
        sed -e "/_IDE_DOC_PATH/s/qtcreator/${PF}/" \
                -i cmake/QtCreatorAPIInternal.cmake || die
+
+       if use plugin-dev; then #928423
+               # cmake --install --component integrates poorly with the cmake
+               # eclass and the install targets are otherwise missing, so strip
+               # out EXCLUDE_FROM_ALL until figure out a better solution
+               find . \( -name CMakeLists.txt -o -name '*.cmake' \) -exec sed 
-i -zE \
+                       
's/COMPONENT[[:space:]]+Devel[[:space:]]+EXCLUDE_FROM_ALL//g' {} + || die
+       fi
 }
 
 src_configure() {

diff --git a/dev-qt/qt-creator/qt-creator-9999.ebuild 
b/dev-qt/qt-creator/qt-creator-9999.ebuild
index 017a06e30b56..f28f40dcec29 100644
--- a/dev-qt/qt-creator/qt-creator-9999.ebuild
+++ b/dev-qt/qt-creator/qt-creator-9999.ebuild
@@ -34,8 +34,8 @@ HOMEPAGE="https://www.qt.io/product/development-tools";
 LICENSE="GPL-3"
 SLOT="0"
 IUSE="
-       +clang designer doc +help qmldesigner serialterminal
-       +svg test +tracing webengine
+       +clang designer doc +help plugin-dev qmldesigner
+       serialterminal +svg test +tracing webengine
 "
 REQUIRED_USE="clang? ( ${LLVM_REQUIRED_USE} )"
 RESTRICT="!test? ( test )"
@@ -97,6 +97,14 @@ src_prepare() {
        # needed for finding docs at runtime in PF
        sed -e "/_IDE_DOC_PATH/s/qtcreator/${PF}/" \
                -i cmake/QtCreatorAPIInternal.cmake || die
+
+       if use plugin-dev; then #928423
+               # cmake --install --component integrates poorly with the cmake
+               # eclass and the install targets are otherwise missing, so strip
+               # out EXCLUDE_FROM_ALL until figure out a better solution
+               find . \( -name CMakeLists.txt -o -name '*.cmake' \) -exec sed 
-i -zE \
+                       
's/COMPONENT[[:space:]]+Devel[[:space:]]+EXCLUDE_FROM_ALL//g' {} + || die
+       fi
 }
 
 src_configure() {

Reply via email to