From 14778a16925e75e495f241a398e02acba66fe97b Mon Sep 17 00:00:00 2001 From: Youjie Zhou Date: Mon, 17 Feb 2014 19:17:06 +0700 Subject: libraries/VTK: Added (The Visualization Toolkit). Signed-off-by: Willy Sudiarto Raharjo --- libraries/VTK/README | 13 +++++ libraries/VTK/VTK.SlackBuild | 103 ++++++++++++++++++++++++++++++++++ libraries/VTK/VTK.info | 10 ++++ libraries/VTK/patch-handle-64bit.diff | 56 ++++++++++++++++++ libraries/VTK/slack-desc | 19 +++++++ 5 files changed, 201 insertions(+) create mode 100644 libraries/VTK/README create mode 100644 libraries/VTK/VTK.SlackBuild create mode 100644 libraries/VTK/VTK.info create mode 100644 libraries/VTK/patch-handle-64bit.diff create mode 100644 libraries/VTK/slack-desc diff --git a/libraries/VTK/README b/libraries/VTK/README new file mode 100644 index 000000000000..e85f751d4052 --- /dev/null +++ b/libraries/VTK/README @@ -0,0 +1,13 @@ +The Visualization Toolkit (VTK) is an open source, freely available +software system for 3D computer graphics, modeling, image processing, +volume rendering, scientific visualization and information +visualization. VTK also includes ancillary support for 3D interaction +widgets, two and three-dimensional annotation, and parallel +computing. At its core VTK is implemented as a C++ toolkit, requiring +users to build applications by combining various objects into an +application. The system also supports automated wrapping of the C++ +core into Python, Java and Tcl, so that VTK applications may also be +written using these interpreted programming languages. + +VTK provides several language bindings. You may need to modify related +cmake options. Only Qt binding is enabled by default. diff --git a/libraries/VTK/VTK.SlackBuild b/libraries/VTK/VTK.SlackBuild new file mode 100644 index 000000000000..6c2b8c7d99a4 --- /dev/null +++ b/libraries/VTK/VTK.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Slackware build script for VTK + +# Copyright 2013,2014 Youjie Zhou +# 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. +# +# 2014-02-14 Merge lib64 patch from Christoph Willing +# 2014-02-16 Update to 6.1.0 + +PRGNAM=VTK +VERSION=${VERSION:-6.1.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +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 . +find -L . \ + \( -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 {} \; + +# patch CMakefile first for lib64 issue +patch -p0 <$CWD/patch-handle-64bit.diff + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DLIB_SUFFIX=$LIBDIRSUFFIX \ + -DVTK_Group_Qt=ON \ + -DBUILD_SHARED_LIBS=ON .. + + make -j4 + make install DESTDIR=$PKG +cd .. + +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/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/libraries/VTK/VTK.info b/libraries/VTK/VTK.info new file mode 100644 index 000000000000..33804541495d --- /dev/null +++ b/libraries/VTK/VTK.info @@ -0,0 +1,10 @@ +PRGNAM="VTK" +VERSION="6.1.0" +HOMEPAGE="http://www.vtk.org/VTK/project/project.html" +DOWNLOAD="http://www.vtk.org/files/release/6.1/VTK-6.1.0.tar.gz" +MD5SUM="25e4dfb3bad778722dcaec80cd5dab7d" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Youjie Zhou" +EMAIL="jmpopush@gmail.com" diff --git a/libraries/VTK/patch-handle-64bit.diff b/libraries/VTK/patch-handle-64bit.diff new file mode 100644 index 000000000000..128d2a9dd38c --- /dev/null +++ b/libraries/VTK/patch-handle-64bit.diff @@ -0,0 +1,56 @@ +--- CMakeLists.txt.orig 2013-12-31 07:20:28.000000000 +1000 ++++ CMakeLists.txt 2014-01-15 10:20:36.928326331 +1000 +@@ -55,13 +55,13 @@ + endif() + if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) + if(UNIX) +- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/lib") ++ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/lib${LIB_SUFFIX}") + else() + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/bin") + endif() + endif() + if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) +- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/lib") ++ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/lib${LIB_SUFFIX}") + endif() + mark_as_advanced(CMAKE_RUNTIME_OUTPUT_DIRECTORY + CMAKE_LIBRARY_OUTPUT_DIRECTORY +@@ -78,14 +78,17 @@ + "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}") + + # VTK installation structure ++IF(NOT LIB_SUFFIX) ++ SET(LIB_SUFFIX "") ++ENDIF(NOT LIB_SUFFIX) + if(NOT VTK_INSTALL_RUNTIME_DIR) + set(VTK_INSTALL_RUNTIME_DIR bin) + endif() + if(NOT VTK_INSTALL_LIBRARY_DIR) +- set(VTK_INSTALL_LIBRARY_DIR lib) ++ set(VTK_INSTALL_LIBRARY_DIR lib${LIB_SUFFIX}) + endif() + if(NOT VTK_INSTALL_ARCHIVE_DIR) +- set(VTK_INSTALL_ARCHIVE_DIR lib) ++ set(VTK_INSTALL_ARCHIVE_DIR lib${LIB_SUFFIX}) + endif() + if(NOT VTK_INSTALL_INCLUDE_DIR) + set(VTK_INSTALL_INCLUDE_DIR include/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}) +@@ -97,14 +100,14 @@ + set(VTK_INSTALL_DOC_DIR share/doc/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}) + endif() + if(NOT VTK_INSTALL_PACKAGE_DIR) +- set(VTK_INSTALL_PACKAGE_DIR "lib/cmake/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}") ++ set(VTK_INSTALL_PACKAGE_DIR "lib${LIB_SUFFIX}/cmake/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}") + endif() + if(NOT VTK_INSTALL_DOXYGEN_DIR) + set(VTK_INSTALL_DOXYGEN_DIR ${VTK_INSTALL_DOC_DIR}/doxygen) + endif() + if(NOT VTK_INSTALL_TCL_DIR) +- # tclsh searches /lib/tcltk and its subdirectories for pkgIndex.tcl files +- set(VTK_INSTALL_TCL_DIR lib/tcltk/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}) ++ # tclsh searches /lib${LIB_SUFFIX}/tcltk and its subdirectories for pkgIndex.tcl files ++ set(VTK_INSTALL_TCL_DIR lib${LIB_SUFFIX}/tcltk/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}) + endif() + if(NOT VTK_INSTALL_EXPORT_NAME) + set(VTK_INSTALL_EXPORT_NAME VTKTargets) diff --git a/libraries/VTK/slack-desc b/libraries/VTK/slack-desc new file mode 100644 index 000000000000..8b9c0104d933 --- /dev/null +++ b/libraries/VTK/slack-desc @@ -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------------------------------------------------------| +VTK: VTK (The Visualization Toolkit) +VTK: +VTK: The Visualization Toolkit (VTK) is an open source, freely available +VTK: software system for 3D computer graphics, modeling, image processing, +VTK: volume rendering, scientific visualization and information +VTK: visualization. VTK also includes ancillary support for 3D interaction +VTK: widgets, two and three-dimensional annotation, and parallel +VTK: computing. +VTK: +VTK: Homepage: http://www.vtk.org/VTK/project/about.html +VTK: -- cgit v1.2.3