development/Bear: Added (gen compilation database for clang tooling)

Signed-off-by: bedlam <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Ivan Kovmir 2023-04-13 00:52:34 +01:00 committed by Willy Sudiarto Raharjo
parent f5eb451dbd
commit 1678920abd
No known key found for this signature in database
GPG key ID: 3F617144D7238786
4 changed files with 149 additions and 0 deletions

View file

@ -0,0 +1,111 @@
#!/bin/bash
# Slackware build script for Bear
# Copyright 2023 Ivan Kovmir <i@kovmir.eu>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd "$(dirname "$0")" ; CWD=$(pwd)
PRGNAM=Bear
VERSION=${VERSION:-3.1.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
NAMVER=$PRGNAM-$VERSION
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=ia32 ;;
arm*) ARCH=aarch64 ;;
*) ARCH=$(uname -m) ;;
esac
fi
if [ -n "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP="${TMP:-/tmp/SBo}"
SRC="$TMP/$NAMVER"
PKG="$TMP/package-$PRGNAM"
OUTPUT="${OUTPUT:-/tmp}"
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
else
SLKCFLAGS="-O2"
fi
set -e
rm -rf "$PKG"
mkdir -p "$TMP" "$PKG" "$OUTPUT"
cd "$TMP"
rm -rf "$PRGNAM-$VERSION"
tar xvf "$CWD/$PRGNAM-$VERSION.tar.gz"
cd "$PRGNAM-$VERSION"
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
INSTPREFIX='/usr'
cmake \
-DENABLE_UNIT_TESTS=OFF \
-DENABLE_FUNC_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=$INSTPREFIX \
-DCMAKE_INSTALL_LIBDIR=lib64 \
-DCMAKE_INSTALL_DOCDIR=doc/$NAMVER \
make all
make DESTDIR="$PKG" install
# There is an insatll/strip Makefile recipe, but sbopkglint still compalins.
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# The project does not respect -DCMAKE_INSTALL_MANDIR.
# I have reported the issue, so, hopefully, it will be fixed soon.
mv "$PKG$INSTPREFIX/share/man" "$PKG$INSTPREFIX"
rm -rf "$PKG$INSTPREFIX/share"
# Remove useless garbage after the install Makefile recipe.
rm "$PKG$INSTPREFIX/doc/$NAMVER/CODE_OF_CONDUCT.md"
rm "$PKG$INSTPREFIX/doc/$NAMVER/CONTRIBUTING.md"
rm "$PKG$INSTPREFIX/doc/$NAMVER/INSTALL.md"
mv "$PKG$INSTPREFIX/doc/$NAMVER/COPYING" "$PKG$INSTPREFIX/doc/$NAMVER/LICENSE"
mv "$PKG$INSTPREFIX/doc/$NAMVER/README.md" "$PKG$INSTPREFIX/doc/$NAMVER/repository-README.md"
# Compress man pages.
find "$PKG$INSTPREFIX/man" -type f -exec gzip {} +;
mkdir -p "$PKG/install"
mkdir -p "$PKG/usr/doc/$NAMVER"
cat "$CWD/$PRGNAM.SlackBuild" > "$PKG/usr/doc/$NAMVER/$PRGNAM.SlackBuild"
cat "$CWD/README" > "$PKG/usr/doc/$NAMVER/README"
cat "$CWD/slack-desc" > "$PKG/install/slack-desc"
cd "$PKG"
/sbin/makepkg -l y -c n "$OUTPUT/$NAMVER-$ARCH-$BUILD$TAG.$PKGTYPE"

View file

@ -0,0 +1,10 @@
PRGNAM="Bear"
VERSION="3.1.1"
HOMEPAGE="https://github.com/rizsotto/Bear"
DOWNLOAD="https://github.com/rizsotto/Bear/archive/3.1.1/Bear-3.1.1.tar.gz"
MD5SUM="1eccc34705eac635aa7408c6c01aef86"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="grpc fmt spdlog nlohmann_json"
MAINTAINER="Ivan Kovmir"
EMAIL="i@kovmir.eu"

9
development/Bear/README Normal file
View file

@ -0,0 +1,9 @@
Bear is a tool that generates a compilation database for clang tooling.
The JSON compilation database is used in the clang project to provide
information on how a single compilation unit is processed. With this, it
is easy to re-run the compilation with alternate programs.
Some build system natively supports the generation of JSON compilation
database. For projects which does not use such build tool, Bear
generates the JSON file during the build process.

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. You must make
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
Bear: Bear (generates a compilation database for clang tooling)
Bear:
Bear: The JSON compilation database is used in the clang project to
Bear: provide information on how a single compilation unit is processed.
Bear: With this, it is easy to re-run the compilation with alternate
Bear: programs.
Bear:
Bear:
Bear:
Bear: https://github.com/rizsotto/Bear
Bear: