commit: 097ae2bc2410e259bc95344bfb8bacfb0c20720d
Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 1 21:18:33 2020 +0000
Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Wed Jul 1 21:22:39 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=097ae2bc
dev-util/bear: new package, compile_commands.json generator
used to feed clangd/lsp and other tools.
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
dev-util/bear/Manifest | 1 +
dev-util/bear/bear-2.4.3.ebuild | 61 +++++++++++++++++++++++++++++++++++++++++
dev-util/bear/metadata.xml | 19 +++++++++++++
3 files changed, 81 insertions(+)
diff --git a/dev-util/bear/Manifest b/dev-util/bear/Manifest
new file mode 100644
index 00000000000..bbfa7c76de5
--- /dev/null
+++ b/dev-util/bear/Manifest
@@ -0,0 +1 @@
+DIST bear-2.4.3.tar.gz 49933 BLAKE2B
2a91c30d81f9d0e58a25458579f6b0c867c07d2e532bd2ed29305645e152bd564156f708c4a07a683577412b3fdab1f106685ecf1ad88eaad2f33f0bc43a5baa
SHA512
a4690cfc9938d8752ca5c8322ca4c5039746ade059e4459e7f3f91b2bf3d36ea691a5d855cab7a4e7ad8ff76478c48c4394593e069a1cf8396ead41017421753
diff --git a/dev-util/bear/bear-2.4.3.ebuild b/dev-util/bear/bear-2.4.3.ebuild
new file mode 100644
index 00000000000..83600bfdb38
--- /dev/null
+++ b/dev-util/bear/bear-2.4.3.ebuild
@@ -0,0 +1,61 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7,8} )
+
+inherit cmake python-single-r1
+
+DESCRIPTION="Build EAR generates a compilation database for clang tooling"
+HOMEPAGE="https://github.com/rizsotto/Bear"
+SRC_URI="https://github.com/rizsotto/Bear/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+IUSE="test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="test? (
+ app-shells/bash
+ $(python_gen_cond_dep '
+ dev-python/lit[${PYTHON_USEDEP}]
+ ')
+)"
+
+RDEPEND="${PYTHON_DEPS}"
+
+RESTRICT="!test? ( test )"
+
+S="${WORKDIR}/${P^}"
+
+src_compile() {
+ cmake_src_compile
+ # need to fix it now, before tests are run
+ python_fix_shebang "${BUILD_DIR}"/bear/bear
+ python_fix_shebang test/functional/tools/cdb_diff.py
+}
+
+src_test() {
+ if has sandbox ${FEATURES}; then
+ ewarn "\'FEATURES=sandbox\' detected"
+ ewarn "Bear overrides LD_PRELOAD and conflicts with gentoo
sandbox"
+ ewarn "Skipping tests"
+ elif
+ has usersandbox ${FEATURES}; then
+ ewarn "\'FEATURES=usersandbox\' detected"
+ ewarn "Skipping tests"
+ elif
+ has_version -b 'sys-devel/gcc-config[-native-symlinks]'; then
+ ewarn "\'sys-devel/gcc-config[-native-symlinks]\' detected,
tests call /usr/bin/cc directly (hardcoded)"
+ ewarn "and will fail without generic cc symlink"
+ ewarn "Skipping tests"
+ else
+ einfo "removing unwanted/unsupported/xfail tests"
+ rm -v
test/functional/cases/{end-to-end/scons.ft,intercept/cuda/successful_build.fts,run_pep8.ft}
|| die
+ einfo "test may use optional tools if found: qmake gfortran"
+ cmake_build check
+ fi
+}
diff --git a/dev-util/bear/metadata.xml b/dev-util/bear/metadata.xml
new file mode 100644
index 00000000000..f8c8a305d1e
--- /dev/null
+++ b/dev-util/bear/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ <name>Georgy Yakovlev</name>
+ </maintainer>
+ <longdescription lang="en">
+ Bear is a tool that generates a compilation database for clang
tooling.
+ The concept behind Bear is: to execute the original build
command and intercept the exec calls issued by the build tool.
+ To achieve that, Bear uses the LD_PRELOAD or
DYLD_INSERT_LIBRARIES mechanisms provided by the dynamic linker.
+ Bear has two components: the library and the binary.
+ The library redefines the exec methods to be used by all child
processes.
+ The executable enables the use of the library for child
processes and writes the output file.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">rizsotto/Bear</remote-id>
+ </upstream>
+</pkgmetadata>