summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 741fac90d4a59f5e42dde660684b82e53ff73dc2 (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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Contributor: Severin Glöckner <severin.gloeckner@stud.htwk-leipzig.de>
# Contributor: Thomas Ascher <thomas.ascher@gmx.at>

# To build with python support, set this vairable in your /etc/makepkg.conf
# (Or here, or before calling makepkg)
# It is only disabled because it is at EOL and requires additional AUR-packages.
if [[ "$_k3d_python" != "ON" ]]; then
  _k3d_python=OFF
fi

pkgname=k3d-git
pkgver=0.8.0.6+17
pkgrel=3
pkgdesc="3D modelling and animation software"
arch=('i486' 'i686' 'pentium4' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
url="http://www.k-3d.org"
license=('GPL')
depends=('ftgl' 'cairomm' 'dbus-glib' 'freetype2' 'glibmm' 'gtkglext' 'gtkmm'
         'gtksourceview2' 'gts' 'imagemagick' 'openexr' 'libglvnd' 'glew' 'zlib'
         'libpng' 'libsigc++' 'expat' 'boost-libs' 'graphviz' 'opencollada')
optdepends=('aqsis: Rendering engine')
makedepends=('boost' 'cmake' 'icoutils' 'gendesk' 'git'
             'asciidoc' 'doxygen' 'libxslt')
provides=('k3d')
conflicts=('k3d')

if [[ $_k3d_python = ON ]]; then
  depends+=('boost-python2-libs' 'python2')
  makedepends+=('boost-python2')
fi

source=("git+https://github.com/K-3D/k3d.git"
        "k3d.appdata.xml"
        "workaround.xml"
        # patches from fedora
        "https://src.fedoraproject.org/rpms/k3d/raw/f30/f/0102-Avoid-signed-unsigned-int-warning.patch"
        "https://src.fedoraproject.org/rpms/k3d/raw/f30/f/0103-Use-usr-bin-python2-instead-of-usr-bin-python.patch")
sha256sums=('SKIP'
            '5ffc7ede569bbd1b35bf6d66cec606c948fd34687fc65ab1d4c3d4c5c81cddc2'
            'daedd5319c44fc773e1f1f41abb1f2950f0edab2f2d5978e23ecc46eaeef2318'
            '7cdef0cac28ac183a5b2b1d41780ffa2902e3eb512a3941fa1a39acb46df9428'
            '9e701b2f514aaf875c7b5ba0e1f55c73f5e3afb77dde3a6dccea5b2ebce96f1d')

pkgver() {
  cd k3d

  git describe --tags | sed -e s/k3d-// -e s/-/+/ -e s/-.*//
}


prepare() {
  cd k3d

  # optional
  patch -p1 < "$srcdir"/0102-Avoid-signed-unsigned-int-warning.patch

  # required for Python 2 on Arch
  patch -p1 < "$srcdir"/0103-Use-usr-bin-python2-instead-of-usr-bin-python.patch
  sed -i -e "s/K3D_BOOST_COMPONENTS python)/K3D_BOOST_COMPONENTS python27)/" CMakeLists.txt

  # https://github.com/K-3D/k3d/issues/42
  sed -i -e "/^namespace k3d/i\ #include <algorithm>" k3dsdk/property_collection.cpp

  # https://github.com/K-3D/k3d/issues/43
  rm -r k3dsdk/gil/boost/gil/extension/numeric
  # set c++ standard to 14
  sed -i -e "s/11)/14)/" CMakeLists.txt
}

build() {
  mkdir -p k3d-build
  cd k3d-build

  if [[ $_k3d_python != ON ]]; then
    echo "==> Building without Python support"
  fi

  # Debian sets the -frounding-math option
  export CFLAGS="$CFLAGS -frounding-math"
  export CXXFLAGS="$CXXFLAGS -frounding-math -DBOOST_BIND_GLOBAL_PLACEHOLDERS"

  # The cmake script finds a mix of imagmagick 6 and 7, specify 7 directly.
  # The python paths are given to sort out python 3.
  # The openexr module does not compile anymore and is thus disabled.
  # And set the cmake policy to link against the new OpenGL library.
  cmake ../k3d \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_POLICY_DEFAULT_CMP0072=NEW \
      -DPYTHON_EXECUTABLE=/usr/bin/python2 \
      -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
      -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
      -DBoost_PYTHON_LIBRARY=/usr/lib/libboost_python27.so \
      -DK3D_ENABLE_PYTHON=$_k3d_python \
      -DK3D_BUILD_NGUI_PYTHON_SHELL_MODULE=$_k3d_python \
      -DK3D_BUILD_PYTHON_MODULE=$_k3d_python \
      -DK3D_BUILD_PYUI_MODULE=$_k3d_python \
      -DK3D_BUILD_OPENEXR_IO_MODULE=OFF \
      -DImageMagick_Magick++_ARCH_INCLUDE_DIR=/usr/include/ImageMagick-7 \
      -D CMAKE_CXX_FLAGS="-DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16" \
      -DK3D_BUILD_OSMESA_MODULE=OFF \
      -Wno-dev

  make
}

package() {
  # For some reason the file generation fails for this one:
  cp workaround.xml k3d-build/lib/k3d/plugins/k3d-imagemagick-io.module.proxy

  cd k3d-build
  make install DESTDIR="$pkgdir"

  # metadata
  install -Dm644 "$srcdir"/k3d.appdata.xml "$pkgdir"/usr/share/metainfo/k3d.appdata.xml

  # create launcher
  cd "$pkgdir"/usr/share/applications
  gendesk -f -n \
      --pkgname="k3d" \
      --name="K-3D" \
      --genericname="3D modelling and animation" \
      --comment="view and create 3D modells and animations" \
      --startupnotify=True \
      --exec=k3d \
      --categories='Graphics;3DGraphics;GTK'

  # cut icons
  for size in 22 24 32 36 64 72 96 128 192 256 384
  do
    case $size in
      *)
        mkdir -p "$pkgdir"/usr/share/icons/hicolor/${size}x${size}/apps
        ;;&
    384)
        convert -crop 384x384+10+10 \
           "$srcdir"/k3d/share/k3d/icons/k3d_large.png \
           "$pkgdir"/usr/share/icons/hicolor/384x384/apps/k3d.png
        ;;
      *)
        convert -crop 377x377+13+14 -resize ${size}x${size} \
           "$srcdir"/k3d/share/k3d/icons/k3d_large.png \
           "$pkgdir"/usr/share/icons/hicolor/${size}x${size}/apps/k3d.png
        ;;
    esac
  done
}