diff --git a/vtk/PKGBUILD b/vtk/PKGBUILD new file mode 100644 index 000000000..3563f1972 --- /dev/null +++ b/vtk/PKGBUILD @@ -0,0 +1,119 @@ +# Contributions from ArchLinux + +pkgname=vtk +pkgver=8.1.1 +pkgrel=1 +pkgdesc='A software system for 3D computer graphics, image processing, and visualization' +arch=('x86_64') +url='http://www.vtk.org/' +license=('BSD') +depends=('gcc-libs') +makedepends=('boost' 'cmake' 'doxygen' 'ffmpeg' 'gdal' 'glew' 'gnuplot' + 'hdf5' 'java-environment' 'jsoncpp' 'lz4' + 'mariadb' 'netcdf' 'openmpi' 'proj' 'python3-autobahn' 'python3-constantly' + 'python3-incremental' 'python3-matplotlib' + 'python3-mpi4py' 'python3-twisted' 'qt5-base' 'qt5-tools' + 'qt5-webkit' 'qt5-x11extras' 'tk' 'unixodbc' 'wget') +optdepends=('python3: python bindings' + 'java-runtime: java bindings' + 'tk: tcl bindings' + 'gnuplot: plotting tools' + 'graphviz: drawing tools' + 'python3-constantly' + 'python3-incremental' + 'python3-matplotlib: for Matplotlib rendering' + 'python3-twisted: for vtkWeb' + 'python3-autobahn: for vtkWeb' + 'python3-mpi4py: OpenMPI python support' + 'openmpi: OpenMPI support' + 'qt5-x11extras' + 'qt5-webkit: WebKit support' + 'ffmpeg' + 'gdal' + 'glew' + 'hdf5' + 'jsoncpp' + 'lz4' + 'mariadb' + 'netcdf' + 'proj' + 'unixodbc') +source=("http://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz" + "http://www.vtk.org/files/release/${pkgver%.*}/VTKData-${pkgver}.tar.gz" + "http://www.vtk.org/files/release/${pkgver%.*}/VTKLargeData-${pkgver}.tar.gz") +options=(staticlibs) +sha512sums=('7ab38042f6d94d1580125b3a68a6d17cdc3de925d0e886ebfc8c414adfba1438f5783d896a4cd1bb7e15462450107ab5773a3a749195b357f062e91d5c410060' + '6c20cfb9dda9d64c27946693f22357f38699d2ff014c2f33e3b05573935eaf3b7a4e30a8cf5747772a6dafe39c20e90b78a0267620ff6b6d5b487edf8ef4f975' + '9966b8474c22c2fb23a51e0411f06bc4f33e4233535d0b4875a87731c6c95e2c10c97565dc0e6af2af6c7ed7d5e5de171eddf9678cc4235a329cdaf36a021dd4') + +prepare() { + mkdir build +} + +build() { + cd build + + # flags to enable using system libs + local cmake_system_flags="" + # TODO: try to use system provided XDMF2, XDMF3, GL2PS + # VTK fails to compile with recent netcdf-cxx package, VTK should be ported to the latest API + # VTK does not work with XDMF2 compiled from git. TODO: make vtk compatible with system XDMF library. + # libharu needs to be patched, see https://github.com/libharu/libharu/pull/157 + # Note: VTK explicitly disables system GLEW dependency, it uses embedded sources with modifications + # system gl2ps is not used because of http://www.vtk.org/Bug/view.php?id=16083 + for lib in EXPAT FREETYPE JPEG PNG TIFF ZLIB LIBXML2 OGGTHEORA TWISTED ZOPE SIX AUTOBAHN MPI4PY JSONCPP GLEW HDF HDF5 TXAIO HYPERLINK CONSTANTLY INCREMENTAL LZ4 NETCDF; do + cmake_system_flags+="-DVTK_USE_SYSTEM_${lib}:BOOL=ON " + done + + local _tkver=$(echo 'puts $tcl_version' | tclsh) + + cmake ../VTK-${pkgver} \ + -Wno-dev \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \ + -DBUILD_DOCUMENTATION:BOOL=OFF \ + -DDOXYGEN_KEEP_TEMP:BOOL=ON \ + -DDOCUMENTATION_HTML_HELP:BOOL=OFF \ + -DDOCUMENTATION_HTML_TARZ:BOOL=OFF \ + -DBUILD_EXAMPLES:BOOL=ON \ + -DXDMF_STATIC_AND_SHARED=OFF \ + -DVTK_USE_FFMPEG_ENCODER:BOOL=ON \ + -DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF \ + -DVTK_BUILD_ALL_MODULES:BOOL=ON \ + -DVTK_USE_LARGE_DATA:BOOL=ON \ + -DVTK_QT_VERSION:STRING="5" \ + -DVTK_WRAP_JAVA:BOOL=ON \ + -DVTK_WRAP_PYTHON:BOOL=ON \ + -DVTK_WRAP_TCL:BOOL=ON \ + -DCMAKE_CXX_FLAGS="-D__STDC_CONSTANT_MACROS" \ + -DVTK_PYTHON_VERSION="3" \ + -DVTK_CUSTOM_LIBRARY_SUFFIX="" \ + -DVTK_INSTALL_INCLUDE_DIR:PATH=include/vtk \ + -DVTK_INSTALL_TCL_DIR=/usr/lib/tcl${_tkver}/vtk/ \ + ${cmake_system_flags} \ + -DCMAKE_BUILD_TYPE=Release + + make +} + +package() { + cd build + + make DESTDIR="${pkgdir}" install + # remove xdmf cmake config file + rm -rf "${pkgdir}/usr/XdmfConfig.cmake" + + # Move the vtk.jar to the arch-specific location + install -dv "${pkgdir}/usr/share/java/vtk" + mv -v "${pkgdir}/usr/lib/vtk.jar" "${pkgdir}/usr/share/java/vtk" + rm -rf "${pkgdir}/usr/lib/vtk-${pkgver%.*}/java" + + # Install license + install -Dm644 "${srcdir}/VTK-${pkgver}/Copyright.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}" + + # Fix path of QtDesigner plugin + install -dv "${pkgdir}/usr/lib/qt" + mv "${pkgdir}/usr/plugins" "${pkgdir}/usr/lib/qt/plugins" +}