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 +}
