mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-21 19:42:24 +01:00
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:
parent
f5eb451dbd
commit
1678920abd
4 changed files with 149 additions and 0 deletions
111
development/Bear/Bear.SlackBuild
Normal file
111
development/Bear/Bear.SlackBuild
Normal 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"
|
10
development/Bear/Bear.info
Normal file
10
development/Bear/Bear.info
Normal 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
9
development/Bear/README
Normal 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.
|
19
development/Bear/slack-desc
Normal file
19
development/Bear/slack-desc
Normal 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:
|
Loading…
Reference in a new issue