commit:     9833b1a624b111f4a518a88c0fec011c3b063d0c
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Wed Sep 24 08:47:13 2025 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Thu Sep 25 18:04:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9833b1a6

dev-util/include-what-you-use: add 0.24

* Migrate to llvm-r2.eclass.
* Enable python3.14 support.

Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43922
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 dev-util/include-what-you-use/Manifest             |   1 +
 .../include-what-you-use-0.24.ebuild               | 104 +++++++++++++++++++++
 2 files changed, 105 insertions(+)

diff --git a/dev-util/include-what-you-use/Manifest 
b/dev-util/include-what-you-use/Manifest
index e75b2cafabc8..e15e0bab69f0 100644
--- a/dev-util/include-what-you-use/Manifest
+++ b/dev-util/include-what-you-use/Manifest
@@ -1 +1,2 @@
 DIST include-what-you-use-0.23.tar.gz 813726 BLAKE2B 
845101985d1c39925605d2908ad76c40b8df0838467d7afd83b644914893f8e32ed1563348e568bc126ea4349ab390b189b734f66cf3b8da75277af169313a23
 SHA512 
5c2bbda7dbc614089717d2a4f8b9a96111dc30efcdd331a21c548399d58b47229210d5f17eb48eeb56c44797068ebac634a5d68a5c50ff322753e5f7965b3d48
+DIST include-what-you-use-0.24.tar.gz 821159 BLAKE2B 
191d0299c0b5ad6ed75cb24b5530fe606dc6a9ddb91b8d1667ba6f5b909498354b7565e0ebafbfd56eb6e1c4e1c1cf885a0d08b8584d33fae34c4dcbde92ff65
 SHA512 
62d26a0e646cb6d94d5dee8d672009b938fdcfe64c5c6086693295e90d858754d9a6706b063ddc2cfe5660181df2722a4becfb56285b8cfc6d60f88f729924b7

diff --git a/dev-util/include-what-you-use/include-what-you-use-0.24.ebuild 
b/dev-util/include-what-you-use/include-what-you-use-0.24.ebuild
new file mode 100644
index 000000000000..bd701d0e58e7
--- /dev/null
+++ b/dev-util/include-what-you-use/include-what-you-use-0.24.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+LLVM_COMPAT=( 20 )
+
+inherit cmake llvm-r2 python-single-r1 toolchain-funcs
+
+DESCRIPTION="Find unused include directives in C/C++ programs"
+HOMEPAGE="https://include-what-you-use.org/";
+SRC_URI="
+       https://github.com/${PN}/${PN}/archive/${PV}.tar.gz
+               -> ${P}.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+       $(llvm_gen_dep '
+               llvm-core/clang:${LLVM_SLOT}=
+               llvm-core/llvm:${LLVM_SLOT}=
+       ')
+       ${PYTHON_DEPS}
+"
+DEPEND="${RDEPEND}"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+pkg_setup() {
+       llvm-r2_pkg_setup
+       python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       cmake_src_prepare
+       python_fix_shebang .
+}
+
+src_configure() {
+       local mycmakeargs=(
+               # Note [llvm install path]
+               # Unfortunately all binaries using clang driver
+               # have to reside at the same path depth as
+               # 'clang' binary itself. See bug #625972
+               # Thus as a hack we install it to the same directory
+               # as llvm/clang itself.
+               -DCMAKE_INSTALL_PREFIX="$(get_llvm_prefix)"
+               # Relative path to the clang library
+               # 
https://github.com/include-what-you-use/include-what-you-use/commit/e046d23571876e72719ef96a36ff0cb1cb2e64b6
+               -DIWYU_RESOURCE_DIR="../../../clang/${LLVM_SLOT}"
+       )
+       cmake_src_configure
+}
+
+# tc-cpp-is-true and tc-get-cxx-stdlib smashed together
+tc-cxx-is-true() {
+       local CONDITION=${1}
+
+       $(tc-getCXX)  ${CPPFLAGS} ${CXXFLAGS} -x c++ -E -P - <<-EOF >/dev/null 
2>&1
+       #if __cplusplus >= 202002L
+       #include <version>
+       #else
+       #include <ciso646>
+       #endif
+       #if ${CONDITION}
+       true
+       #else
+       #error false
+       #endif
+       EOF
+}
+
+src_test() {
+       local -a CMAKE_SKIP_TESTS=()
+
+       if tc-cxx-is-true "defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE >= 
15)"; then
+               CMAKE_SKIP_TESTS+=(
+                       cxx.test_precomputed_tpl_args
+                       cxx.test_precomputed_tpl_args_cpp14
+               )
+       fi
+
+       # There could be failures with older libcxx versions as well.
+       if tc-cxx-is-true "defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION >= 
210101)"; then
+               CMAKE_SKIP_TESTS+=(
+                       cxx.test_badinc
+                       cxx.test_expl_inst_macro
+                       cxx.test_iterator
+                       cxx.test_libbuiltins
+                       cxx.test_no_char_traits
+                       cxx.test_overloaded_class
+                       cxx.test_placement_new
+                       cxx.test_precomputed_tpl_args
+                       cxx.test_precomputed_tpl_args_cpp14
+                       cxx.test_stl_container_provides_allocator
+               )
+       fi
+
+       cmake_src_test
+}

Reply via email to