commit:     224fbae9c571f2bcf40a63992c153a40a6baa65c
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Mon May  1 10:34:45 2023 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Mon May  1 10:36:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=224fbae9

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

Closes: https://bugs.gentoo.org/905199
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 dev-util/include-what-you-use/Manifest             |  1 +
 .../include-what-you-use-0.20.ebuild               | 92 ++++++++++++++++++++++
 2 files changed, 93 insertions(+)

diff --git a/dev-util/include-what-you-use/Manifest 
b/dev-util/include-what-you-use/Manifest
index 70e10aaf4ba5..75ee176c9b56 100644
--- a/dev-util/include-what-you-use/Manifest
+++ b/dev-util/include-what-you-use/Manifest
@@ -1,2 +1,3 @@
 DIST include-what-you-use-0.19-test-util-support-EXTRA_IWYU_ARGS.patch 2314 
BLAKE2B 
d6c99aa59b52207ece610f8a8fe52ae967f3e027118c97f665b0a5d21782d85d94658ece1e0ae0e2d86cdcb94a345f072fdbda495caf589b045a8be38bf56f99
 SHA512 
2ecd6afc2de5ff85c8a6609b151d7d1e50a985e5c52db9b298ce21bad94a3bafb7b939fcd3b3cec0b753e83ba9ea256f628fbda16837ee6b3c3f1d2ec664d4d9
 DIST include-what-you-use-0.19.tar.gz 757761 BLAKE2B 
09dfe686db78973059039f878029cda8dea9912127cf7ed9ddc123abe14459e670304fd531760afbebedee8c4992d15add18b75f9b62dc2d9c4b0f4edb8e0a1d
 SHA512 
0847ae898696b51540ab9f5715e69bae67db42409d60205227d543ba6597b12cc2ea5bf68a3315c31f22e7186e05c06a86f5ae5b893c23bfe4cd9ef6f06ccddc
+DIST include-what-you-use-0.20.tar.gz 766208 BLAKE2B 
54ae7ab18afc592bae201e551377a22d9439cb38418197836aef9d7a74d84ec7cca81ae155358504af9520a07d513e78e61ed7bcf55028f3b56aaa6e949f950b
 SHA512 
77195dc36338a37d3397c78701d81e52fc1c6a3441979fa016f154b0fc860598959e6430e78a51bbf9049f6b2bb62956e50f5531ac5c94c6554e2383ace540f5

diff --git a/dev-util/include-what-you-use/include-what-you-use-0.20.ebuild 
b/dev-util/include-what-you-use/include-what-you-use-0.20.ebuild
new file mode 100644
index 000000000000..f91d37114fcd
--- /dev/null
+++ b/dev-util/include-what-you-use/include-what-you-use-0.20.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit cmake llvm python-single-r1
+
+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
+       
https://github.com/include-what-you-use/include-what-you-use/commit/62e5e2e35380e46ccbff2c2ed118f8bb5c01755b.patch
+               -> ${PN}-0.19-test-util-support-EXTRA_IWYU_ARGS.patch
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+LLVM_MAX_SLOT=16
+
+RDEPEND="
+       sys-devel/clang:${LLVM_MAX_SLOT}
+       sys-devel/llvm:${LLVM_MAX_SLOT}
+       ${PYTHON_DEPS}
+"
+DEPEND="${RDEPEND}"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+PATCHES=(
+       # https://github.com/include-what-you-use/include-what-you-use/pull/1252
+       "${DISTDIR}"/${PN}-0.19-test-util-support-EXTRA_IWYU_ARGS.patch
+       
"${FILESDIR}"/${PN}-0.19-tests-cxx-badinc.cc-remove-stddef-from-expected.patch
+)
+
+llvm_check_deps() {
+       has_version "sys-devel/clang:${LLVM_SLOT}"
+}
+
+pkg_setup() {
+       llvm_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 "${LLVM_MAX_SLOT}")"
+       )
+       cmake_src_configure
+}
+
+src_test() {
+       local clang_version=$(best_version sys-devel/clang:${LLVM_MAX_SLOT})
+       clang_version=${clang_version#*/*-} # reduce it to ${PV}-${PR}
+       clang_version=${clang_version%%[_-]*} # main version without 
beta/pre/patch/revision
+
+       local clang_include_dir_candidates=(
+               "${ESYSROOT}/usr/lib/clang/${clang_version}/include"
+               "${ESYSROOT}/usr/lib/clang/${LLVM_MAX_SLOT}/include"
+       )
+
+       local candidate_dir
+       for candidate_dir in "${clang_include_dir_candidates[@]}"; do
+               if [[ -d "${candidate_dir}" ]]; then
+                       local clang_include_dir="${candidate_dir}"
+                       break
+               fi
+       done
+
+       if [[ ! -v clang_include_dir ]]; then
+               die "Could not infer clang include directory. Candidates: 
${clang_include_dir_candidates[*]}"
+       fi
+
+       local -x EXTRA_IWYU_ARGS="-I ${clang_include_dir}"
+       "${EPYTHON}" run_iwyu_tests.py \
+                                -- "${BUILD_DIR}"/bin/${PN} \
+               || die "Tests failed with $? (using ${EPYTHON})"
+}

Reply via email to