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>gyakov...@gentoo.org</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>