summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 665107d9ecf63e36bb9093b86a73f6dbc18b53d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# Maintainer:  Albert Gräf <aggraef@gmail.com>
# Contributor: Gabriel Souza Franco <Z2FicmllbGZyYW5jb3NvdXphQGdtYWlsLmNvbQ==>
# Contributor: Florian Pritz <bluewind@xinu.at>
# Contributor: Ray Rashif <schiv@archlinux.org>
# Contributor: Andrzej Giniewicz <gginiu@gmail.com>
# Contributor: Thomas Dziedzic < gostrc at gmail >

# This is based on the earlier vtk6 package maintained by Gabriel Souza Franco
# which was deleted some time ago. The present package is a stripped-down
# version which compiles on current Arch and just includes the Tcl wrapper (no
# Java, no Python). It includes everything needed for Tcl-based VTK
# development, is lighter on dependencies, and builds fairly quickly.

# This package is for people who need to run legacy VTK applications which
# require a full set of VTK Tcl libraries which can be loaded straight into
# *any* (possibly embedded) instance of the Tcl interpreter. This isn't
# supported by newer VTK versions any more, which forces you to use the
# programming languages directly supported by VTK. In contrast, this package
# lets you use VTK in *any* programming environment which has a Tcl interface,
# of which there are many.

# NOTE: To prevent conflicts with other VTK installations, like the old vtk6
# package, vtk6-legacy installs into /opt/vtk6. This also encompasses the Tcl
# libraries, so in order to make the vtk package load properly in the Tcl
# interpreter, you need to set the TCLLIBPATH environment variable
# accordingly. E.g., in bash do: export TCLLIBPATH=/opt/vtk6/lib/tcltk.

# To test that the package loads properly, run tclsh and input the command
# `package require vtk`. You should see `6.3` displayed in response.

pkgname=vtk6-legacy
pkgver=6.3.0
_majorver=6.3
pkgrel=1
pkgdesc='A software system for 3D computer graphics, image processing, and visualization. Legacy 6.3 version, Tcl wrapper only.'
arch=('x86_64')
url='https://www.vtk.org/'
license=('BSD')
depends=('gcc-libs' 'gl2ps')
makedepends=('boost' 'cmake' 'ninja' 'doxygen' 'gnuplot' 'tk' 'wget' 'unixodbc' 'gdal' 'openmpi' 'mariadb' 'glew' 'ffmpeg' 'qt5-base' 'jsoncpp' 'qt5-webkit' 'qt5-tools')
optdepends=('tk: tcl bindings'
            'gnuplot: plotting tools'
            'graphviz: drawing tools'
            'openmpi: OpenMPI support'
            'unixodbc'
            'glew'
            'gdal'
            'mariadb')
provides=('vtk6')
conflicts=('vtk6')
source=("https://www.vtk.org/files/release/${_majorver}/VTK-${pkgver}.tar.gz"
	remove-vtkxdmf3.patch::https://github.com/Kitware/VTK/pull/21/commits/a98527dfe9ce23beebf386fab07caef99b911ede.patch
	find-libxml2.patch::https://github.com/Kitware/VTK/pull/21/commits/6216f98a7124e12a2c1cefd113347f94b51f3c51.patch
        ffmpeg3_compat.patch
        gdal2.patch
        cmake-fixes.patch)
options=(staticlibs)
sha1sums=('452efab1eedf6202f2d9a3362b5f69adfc44edda'
          '191a9393dc0e2e8c40e5042611102cd5e421dfaa'
          'c643961234e66ee94f86795f10cea2634ad046cc'
          'a78177f8dd6dedd9ad189fa12730ec53c7d02508'
          'c60610e7c8cf0ad93d7c02cbf8a20fc415f59b3e'
          '46cec3cfb4691c8f7ab42e2de963cb3362f0f13b')

prepare() {
  cd "${srcdir}"/VTK-$pkgver

  # fix compilation errors:
  patch -Np1 -i "${srcdir}"/remove-vtkxdmf3.patch
  patch -Np1 -i "${srcdir}"/find-libxml2.patch
  patch -Np1 -i "${srcdir}"/gdal2.patch
  patch -Np1 -i "${srcdir}"/ffmpeg3_compat.patch
  patch -Np1 -i "${srcdir}"/cmake-fixes.patch
}

build() {
  cd "${srcdir}"
  rm -rf build
  mkdir build
  cd build

  cmake \
    -Wno-dev \
    -DCMAKE_SKIP_RPATH=ON \
    -DBUILD_SHARED_LIBS:BOOL=ON \
    -DCMAKE_INSTALL_PREFIX:FILEPATH=/opt/vtk6 \
    -DBUILD_DOCUMENTATION:BOOL=OFF \
    -DBUILD_EXAMPLES:BOOL=OFF \
    -DVTK_USE_TK:BOOL=ON \
    -DVTK_WRAP_JAVA:BOOL=OFF \
    -DVTK_WRAP_PYTHON:BOOL=OFF \
    -DVTK_WRAP_TCL:BOOL=ON \
    -DVTK_Group_Tk=ON \
    -DCMAKE_CXX_FLAGS="-std=c++14 -D__STDC_CONSTANT_MACROS" \
    -DCMAKE_BUILD_TYPE=Release \
    -DModule_vtkRenderingExternal=ON \
    "${srcdir}/VTK-${pkgver}" \
    -GNinja

  ninja
}

package() {
  cd "${srcdir}/build"

  DESTDIR="${pkgdir}" ninja install

  mkdir -p "$pkgdir/etc/ld.so.conf.d/"
  printf "%s\n" "/opt/vtk6/lib" > "$pkgdir/etc/ld.so.conf.d/vtk6.conf"

  # install license file
  install -dv "${pkgdir}/opt/vtk6/share/licenses/vtk"
  install -m644 "${srcdir}/VTK-${pkgver}/Copyright.txt" "${pkgdir}/opt/vtk6/share/licenses/vtk"
}