summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 63d38337583f2b57574894211f57fe0c70912308 (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
# Maintainer : Lukas Jirkovsky <l.jirkovsky@gmail.com>
# Submaintainer : bartus <arch-user-repoᘓbartus.33mail.com>

pkgname=luxrender-hg
pkgver=4918+.f56582df55f4+
pkgrel=6
pkgdesc="Rendering system for physically correct, unbiased image synthesis"
arch=('x86_64')
url="http://www.luxrender.net/"
license=('GPL')
depends=('boost-libs' 'freeimage' 'openexr' 'openimageio' 'libpng' 'opencl-icd-loader' 'libgl' 'fftw'
         'embree-bvh_build-git')
optdepends=('luxblend25: Blender exporter' \
            'qt4: Qt GUI' \
            'python: pylux Python interface' \
            'opencl-driver: OpenCL support')
makedepends=('cmake' 'boost' 'mesa' 'qt4' "luxrays-hg" 'python' 'opencl-headers'
             'eos_portable_archive' 'mercurial')
provides=('luxrender')
conflicts=('luxrender')
source=('lux::hg+https://bitbucket.org/luxrender/lux#branch=default'
        'boost-15500.patch'
        'luxrender-gcc7.patch'
        'gcc-8.patch'
        'rpath.patch'
        'force_python3.diff')
md5sums=('SKIP'
         'b9e5c442093e69485752e6395c931b27'
         'fa680b0d621b42c8e7440056bf26ec1c'
         '6b71588b2c3e05c8f5ddbac824a39530'
         '53a4c379728906abb0d56ddf7152955e'
         '42692e65eabc5828693e2682e94b7c64')

pkgver() {
  cd "$srcdir/lux"
  echo $(hg identify -n).$(hg identify -i)
}

prepare() {
  cd "$srcdir/lux"

  # force use of python 3 with boost_python
  patch -Np1 < "$srcdir/force_python3.diff"

  # patch for gcc 7 missing argument error
  patch -Np1 -i ${srcdir}/luxrender-gcc7.patch
  
  # remove reference to export_defs.h from liblux.cmake as it was removed from tree
  sed -i '/export_defs/d' cmake/liblux.cmake
  
  # fix deprecated function in boost,asio,basic_stream_socket::native() replace with native_handle()
  patch -Np1 -i ${srcdir}/boost-15500.patch

  # fix unambiguous 'distance' function in boost/gcc8-stl
  patch -Np1 -i ${srcdir}/gcc-8.patch
  
  # fix unambiguous 'PyContext' both in python3.7 and lux::
  sed -i 's/\&PyContext/\&lux::PyContext/g' python/pycontext.h
  sed -i 's/class_<PyContext/class_<lux::PyContext/' python/pycontext.h

  # fix embree2.so(embree-bvh_build-git) rpath
  patch -Np1 -i ${srcdir}/rpath.patch
}

build() {
  cd "$srcdir/lux"
  mkdir -p build
  cd build

  _pyver=$(python -c "from sys import version_info; print(\"%d.%d\" % (version_info[0],version_info[1]))")

  cmake .. \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DLUX_DOCUMENTATION=OFF \
    -DLUXRAYS_DISABLE_OPENCL=OFF \
    -DPYTHON_CUSTOM=ON \
    -DPYTHON_LIBRARIES=/usr/lib/libpython${_pyver}m.so \
    -DPYTHON_INCLUDE_PATH=/usr/include/python${_pyver}m/ \
    -DEMBREE_INCLUDE_PATH=/usr/include/embree-bvh_build \
    -DEMBREE_LIBRARY=/usr/lib/embree-bvh_build/libembree.so.2 \
    -DCMAKE_EXE_LINKER_FLAGS=-lpthread
  make
}

package() {
  cd "$srcdir/lux/build"
  make DESTDIR="$pkgdir" install

  # fix library path on x86_64
  [ "$CARCH" = "x86_64" ] && mv "$pkgdir"/usr/lib64 "$pkgdir"/usr/lib

  # install pylux
  install -D -m644 pylux.so "$pkgdir"/usr/lib/python${_pyver}/pylux.so
}

# vim:set ts=2 sw=2 et: