aboutsummaryrefslogtreecommitdiff
path: root/graphics/meshlab/meshlab.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/meshlab/meshlab.SlackBuild')
-rw-r--r--graphics/meshlab/meshlab.SlackBuild108
1 files changed, 43 insertions, 65 deletions
diff --git a/graphics/meshlab/meshlab.SlackBuild b/graphics/meshlab/meshlab.SlackBuild
index 61f668473a958..db322a1554db7 100644
--- a/graphics/meshlab/meshlab.SlackBuild
+++ b/graphics/meshlab/meshlab.SlackBuild
@@ -25,8 +25,9 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=meshlab
-VERSION=${VERSION:-2016.12}
-VCGLIBVER=${VCGLIBVER:-1.0.1}
+SRCNAM=Meshlab
+VCGLIB=vcglib
+VERSION=${VERSION:-2021.10}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -61,7 +62,6 @@ elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
- SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
@@ -71,81 +71,59 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf meshlab
-tar xvf $CWD/meshlab-$VERSION.tar.gz --transform="s#^meshlab-$VERSION/#meshlab/#"
-
-rm -rf vcglib
-tar xvf $CWD/vcglib-$VCGLIBVER.tar.gz --transform="s#^vcglib-$VCGLIBVER/#vcglib/#"
-
-chown -R root:root meshlab vcglib
-find -L meshlab vcglib \
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz --transform="s#$SRCNAM-$VERSION/#$VERSION/#"
+cd $PRGNAM-$VERSION/src
+tar xvf $CWD/$VCGLIB-$VERSION.tar.gz --transform="s#$VCGLIB-$VERSION/#$VCGLIB/#"
+cd -
+chown -R root:root $PRGNAM-$VERSION
+find -L $PRGNAM-$VERSION \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-cd meshlab
-
-# patches from or via Arch
-patch -p1 < $CWD/patches/mpir.patch # use external library, see also below
-patch -p1 < $CWD/patches/bzip2.patch # use external library, see also below
-patch -p1 < $CWD/patches/muparser.patch # use external library, see also below
-patch -p1 < $CWD/patches/levmar.patch # use external library, see also below
-patch -p1 < $CWD/patches/lapack.patch # enable lapack
-# fix derpy filename
-mv src/plugins_experimental/io_TXT/io_txt.pro src/plugins_experimental/io_TXT/io_TXT.pro
-# fix from git: https://github.com/cnr-isti-vclab/meshlab/commit/1e2a54c
-patch -p1 < $CWD/patches/1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df.patch
-# fix from git: https://github.com/cnr-isti-vclab/meshlab/commit/612388c
-patch -p1 < $CWD/patches/612388c42d00ab8eba1d9626a7da33a18c724d76.patch
-
-# Build the supplied dependencies (they will be statically linked into meshlab)
-cd src/external
-
- # don't use meshlab's ancient mpir
- rm -rf inc/ lib/ # <-- mpir in these dirs
- # and don't use meshlab's ancient bzip2, muParser, levmar
- sed -i \
- -e 's/bzip2.*pro//' -e '/muparser/d' -e '/levmar/d' \
- external.pro
-
- qmake-qt5 -recursive external.pro \
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS -std=c++11"
- make
-
-cd ..
-
-# Build meshlab itself
-qmake-qt5 -recursive meshlab_mini.pro \
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS -std=c++11"
-make
-
-mkdir -p $PKG/opt
-cp -a distrib/ $PKG/opt/meshlab
-
-mkdir -p $PKG/usr/bin
-ln -s \
- /opt/meshlab/{meshlab,meshlabserver} \
- $PKG/usr/bin
+cd $PRGNAM-$VERSION
+
+mkdir -p build
+cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DALLOW_SYSTEM_QHULL=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -G Ninja \
+ -B ./build \
+ -S ./src
+# shellcheck disable=SC2046 # allow MAKEFLAGS to split when passing multiple flags.
+DESTDIR=$PKG "${NINJA:=ninja}" $(grep -oP -- '-+[A-z]+ ?[0-9]*'<<<"${MAKEFLAGS:--j1}") -C "./build" install
+
+# fix plugin folder
+if [ $LIBDIRSUFFIX ] ; then
+ mkdir -p $PKG/usr/lib/$PRGNAM
+ cd $PKG/usr/lib/$PRGNAM
+ ln -s ../../lib$LIBDIRSUFFIX/$PRGNAM/plugins plugins
+ cd -
+fi
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
-mkdir -p $PKG/usr/share/pixmaps
-cp \
- $CWD/meshlab_{32x32,48x48}.xpm \
- $PKG/usr/share/pixmaps
+# Install and compress man pages
+mkdir -p $PKG/usr/man/man1
+cp docs/man/$PRGNAM.1 $PKG/usr/man/man1/
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
+ )
+fi
-mkdir -p $PKG/usr/share/applications
-cp \
- $CWD/meshlab.desktop \
- $PKG/usr/share/applications
+# fix version in desktop entry
+sed -i "s#Version=.*#Version=$VERSION#" $PKG/usr/share/applications/$PRGNAM.desktop
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
- $TMP/$PRGNAM/LICENSE.txt $TMP/$PRGNAM/README.md \
+ LICENSE.txt README.md \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild