summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-07-29 18:34:08 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2017-07-29 18:34:41 +0100
commitc3759ec007c6cda0a7c1100247d455f33a2a1314 (patch)
tree5dbba3a6361006f556da77a7e0ee489e0ed48cc9 /dev-util/include-what-you-use
parentapp-office/projectlibre-bin: [QA] Move binary file to Gentoo mirrors. (diff)
downloadgentoo-c3759ec007c6cda0a7c1100247d455f33a2a1314.tar.gz
gentoo-c3759ec007c6cda0a7c1100247d455f33a2a1314.tar.bz2
gentoo-c3759ec007c6cda0a7c1100247d455f33a2a1314.zip
dev-util/include-what-you-use: worjaround <stddef.h> lookup failure, bug #625972
libclangDriver treats path to include files as stable relative to clang binary: when we run /usr/lib64/llvm/4/bin/clang it resolves <stddef.h> the following way: "/usr/lib64/llvm/4/bin/" + "../../../../lib/clang/4.0.1/include/stddef.h" Unfortunately when someone reuses clang driver to build a new tool heared lookup breaks if final tool resides in "/usr/bin": "/usr/bin/" + "../../../../lib/clang/4.0.1/include/stddef.h" causing file open failures in case of include-what-you-use: /usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found # include <stdarg.h> ^~~~~~~~~~ The workaround is to install executable to the same directory as clang itself. Reported-by: Michał Bartoszkiewicz Bug: https://bugs.gentoo.org/625972 Package-Manager: Portage-2.3.6, Repoman-2.3.3
Diffstat (limited to 'dev-util/include-what-you-use')
-rw-r--r--dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild56
1 files changed, 56 insertions, 0 deletions
diff --git a/dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild b/dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild
new file mode 100644
index 000000000000..4876be740986
--- /dev/null
+++ b/dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
+
+inherit cmake-utils flag-o-matic 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/clang_${PV}.tar.gz -> ${P}.src.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="sys-devel/llvm:4
+ sys-devel/clang:4
+ ${PYTHON_DEPS}
+"
+DEPEND="${RDEPEND}"
+
+REQUIRED_USE=${PYTHON_REQUIRED_USE}
+
+S=${WORKDIR}/${PN}-clang_${PV}
+
+pkg_setup() {
+ llvm_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ python_fix_shebang .
+ default
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DIWYU_LLVM_INCLUDE_PATH=$(llvm-config --includedir)
+ -DIWYU_LLVM_LIB_PATH=$(llvm-config --libdir)
+
+ # 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)"
+ )
+ cmake-utils_src_configure
+}
+
+src_test() {
+ "${EPYTHON}" run_iwyu_tests.py
+}