Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libraries/gnatcoll-bindings: Added (GNAT Bindings). #9121

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions libraries/gnatcoll-bindings/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
The GNAT Components Collection (GNATcoll) - Bindings

This is the bindings module of the GNAT Components Collection.
It includes binding to gmp, iconv, lzma, omp, python,
readline, syslog, and zlib.
109 changes: 109 additions & 0 deletions libraries/gnatcoll-bindings/gnatcoll-bindings.SlackBuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#!/bin/bash
# gnatcoll-bindings package build script (written by [email protected])
# Copyright 2012-2023, Zhu Qun-Ying
# 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=gnatcoll-bindings
VERSION=${VERSION:-25.0.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$(uname -m) ;;
esac
fi

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi

TMP=${TMP:-"/tmp/SBo"}
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"
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
mkdir $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz -C $PRGNAM-$VERSION --strip-components=1

cd $PRGNAM-$VERSION
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \; || exit 1

echo "$VERSION" > version_information
if [ "$ARCH" = "x86_64" ] ; then
find -name "*.gpr" | xargs sed -i 's/lib\//lib64\//'
fi
ADA_FLAGS=$SLKCFLAGS
ADA_FLAGS="${ADA_FLAGS//-Wformat}"
ADA_FLAGS="${ADA_FLAGS//-Werror=format-security}"
LDFLAGS="-s"

gpr_opts="-j0 -R -XGNATCOLL_VERSION=$VERSION -cargs $ADA_FLAGS -fPIC -largs $LDFLAGS"
bindings=( python3 readline iconv gmp lzma omp syslog zlib )

for binding in "${bindings[@]}"
do
cd $binding
if [ "$binding" == "readline" ] ; then
python3 ./setup.py build --prefix=/usr --accept-gpl --gpr-opts $gpr_opts
else
python3 ./setup.py build --prefix=/usr --gpr-opts $gpr_opts
fi
python3 ./setup.py install --prefix="$PKG/usr"
cd ..
done

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION

cp README.md COPYING3 COPYING.RUNTIME $PKG/usr/doc/$PRGNAM-$VERSION
cp $CWD/$PRGNAM.SlackBuild $PKG/usr/doc/$PRGNAM-$VERSION/

mkdir -p $PKG/install
cp $CWD/slack-desc $PKG/install

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
10 changes: 10 additions & 0 deletions libraries/gnatcoll-bindings/gnatcoll-bindings.info
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
PRGNAM="gnatcoll-bindings"
VERSION="25.0.0"
HOMEPAGE="https://github.com/AdaCore/gnatcoll-bindings"
DOWNLOAD="https://github.com/AdaCore/gnatcoll-bindings/archive/v25.0.0/gnatcoll-bindings-25.0.0.tar.gz"
MD5SUM="575a9408717f97b88517893be0903ed4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="gprbuild gnatcoll-core"
MAINTAINER="Zhu Qun-Ying"
EMAIL="[email protected]"
19 changes: 19 additions & 0 deletions libraries/gnatcoll-bindings/slack-desc
Original file line number Diff line number Diff line change
@@ -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 ':' except on otherwise blank lines.

|-----handy-ruler------------------------------------------------------|
gnatcoll-bindings: gnatcoll-bindings (GNAT Components Collection - Bindings)
gnatcoll-bindings:
gnatcoll-bindings: This is the bindings module of the GNAT Components Collection.
gnatcoll-bindings: It includes binding to gmp, iconv, lzma, omp, python,
gnatcoll-bindings: readline, syslog, and zlib.
gnatcoll-bindings:
gnatcoll-bindings: Homepage: https://github.com/AdaCore/gnatcoll-bindings/
gnatcoll-bindings:
gnatcoll-bindings:
gnatcoll-bindings:
gnatcoll-bindings: