commit:     792be1a00ab69ae88089144481b8bdd0fefbf6a1
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 14 10:36:30 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Feb 14 10:40:11 2025 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=792be1a0

kde-plasma/libksysguard: fix build w/ <libcxx-20

Per Robert on the bug:
> libksysguard 9999 fails to build when using the LLVM profile because it now 
> uses
> std::jthread and std::stop_token that llvm's libc++ considers experimental
> and does not build by default.

They're unleashed in libcxx 20 which should be released shortly. In the 
meantime,
pass -fexperimental-library.

Closes: https://bugs.gentoo.org/949636
Thanks-to: Steffen Hau <steffen <AT> hauihau.de>
Thanks-to: Robert Holt <holt.r94 <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 kde-plasma/libksysguard/libksysguard-6.3.49.9999.ebuild | 8 +++++++-
 kde-plasma/libksysguard/libksysguard-9999.ebuild        | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/kde-plasma/libksysguard/libksysguard-6.3.49.9999.ebuild 
b/kde-plasma/libksysguard/libksysguard-6.3.49.9999.ebuild
index 69b562dcae..458c7986f8 100644
--- a/kde-plasma/libksysguard/libksysguard-6.3.49.9999.ebuild
+++ b/kde-plasma/libksysguard/libksysguard-6.3.49.9999.ebuild
@@ -6,7 +6,7 @@ EAPI=8
 ECM_TEST="true"
 KFMIN=6.10.0
 QTMIN=6.8.1
-inherit ecm fcaps plasma.kde.org
+inherit ecm fcaps flag-o-matic plasma.kde.org toolchain-funcs
 
 DESCRIPTION="Task management and system monitoring library"
 
@@ -39,6 +39,12 @@ RDEPEND="${DEPEND}
 FILECAPS=( -m 0755 cap_sys_nice=ep usr/libexec/ksysguard/ksgrd_network_helper )
 
 src_configure() {
+       # support std::jthread and std::stop_token is not enabled per default
+       # in libc++ prior to version 20, need to add "-fexperimental-library"
+       if tc-is-clang && [[ $(tc-get-cxx-stdlib) == libc++ ]] && [[ 
"$(clang-major-version)" -lt 20 ]]; then
+               append-cxxflags "-fexperimental-library"
+       fi
+
        local mycmakeargs=(
                -DCMAKE_DISABLE_FIND_PACKAGE_Libcap=ON
        )

diff --git a/kde-plasma/libksysguard/libksysguard-9999.ebuild 
b/kde-plasma/libksysguard/libksysguard-9999.ebuild
index 4a1abeb8b8..12597285a1 100644
--- a/kde-plasma/libksysguard/libksysguard-9999.ebuild
+++ b/kde-plasma/libksysguard/libksysguard-9999.ebuild
@@ -6,7 +6,7 @@ EAPI=8
 ECM_TEST="true"
 KFMIN=9999
 QTMIN=6.8.1
-inherit ecm fcaps plasma.kde.org
+inherit ecm fcaps flag-o-matic plasma.kde.org toolchain-funcs
 
 DESCRIPTION="Task management and system monitoring library"
 
@@ -39,6 +39,12 @@ RDEPEND="${DEPEND}
 FILECAPS=( -m 0755 cap_sys_nice=ep usr/libexec/ksysguard/ksgrd_network_helper )
 
 src_configure() {
+       # support std::jthread and std::stop_token is not enabled per default
+       # in libc++ prior to version 20, need to add "-fexperimental-library"
+       if tc-is-clang && [[ $(tc-get-cxx-stdlib) == libc++ ]] && [[ 
"$(clang-major-version)" -lt 20 ]]; then
+               append-cxxflags "-fexperimental-library"
+       fi
+
        local mycmakeargs=(
                -DCMAKE_DISABLE_FIND_PACKAGE_Libcap=ON
        )

Reply via email to