File PKGBUILD of Package luxrays

pkgname=luxrays
pkgver=1.5.1
_pkgver=8577ff287efb
# Bump epoch to 1 when ready
pkgrel=5
pkgdesc="Accelerate the ray intersection process by using GPUs"
arch=('x86_64')
url="https://www.luxcorerender.org/"
license=('GPL')
depends=('embree' 'opencl-icd-loader' 'libgl' 'openimageio1-luxrays')
makedepends=('boost' 'cmake' 'freetype2' 'libpng' 'mesa' 'opencl-headers' 'glew' 'freeglut' 'opencl-clhpp' 'extra-cmake-modules' 'ninja')
optdepends=('opencl-driver: OpenCL support'
            'glew: demos (SmallLuxGPU etc.)'
            'freeglut: demos (SmallLuxGPU etc.)'
            'boost-libs: demos (SmallLuxGPU etc.)')
options=('staticlibs')
_patchurl="https://gitlab.com/illwieckz/i-love-compute/-/raw/master/patches/luxmark3"
source=("https://web.archive.org/web/20200623092004if_/https://bitbucket.org/luxrender/luxrays/get/luxrender_v1.5.1.tar.bz2"
        "$_patchurl/luxmark3-luxcore-no-samples.patch"
        "$_patchurl/luxmark3-luxcore-no-pyluxcore.patch"
        "$_patchurl/luxmark3-luxcore-no-division-by-zero-pdf-clamp.patch"
        "$_patchurl/luxmark3-luxcore-do-not-crash-on-kernel-build-failure.patch"
        "$_patchurl/luxmark3-luxcore-catch-opencl-errors-on-platform-listing.patch"
        "$_patchurl/luxmark3-luxcore-catch-opencl-errors-on-device-listing.patch"
        "$_patchurl/luxmark3-luxcore-decode-more-opencl-errors.patch"
        "$_patchurl/luxmark3-luxcore-optionally-print-opencl-build-log.patch"
        "$_patchurl/luxmark3-luxcore-optionally-prefer-bvh.patch"
        "$_patchurl/luxmark3-luxcore-optionally-disable-image.patch"
        "$_patchurl/luxmark3-luxcore-fix-build-with-system-opencl-cmake.patch"
        "$_patchurl/luxmark3-luxcore-do-not-ship-cmake-files.patch"
        "$_patchurl/luxmark3-luxcore-link-slg4-with-opencl.patch"
        "$_patchurl/luxmark3-luxcore-enable-slg4-build.patch"
        "$_patchurl/luxmark3-luxcore-use-simde-on-non-i686.patch"
        "$_patchurl/luxmark3-luxcore-fix-luxcorerender-website-url.patch"
        "luxrays-after-001-clhpp.patch"
        "luxrays-after-002-embree3.patch"
        "luxmark3-luxcore-use-ecm-for-openexr.patch"
        https://github.com/Amaroun/gamarouns/raw/de02478e700e78f5fefc3b0e59e5ec77400575ec/media-libs/luxrays/files/luxrays-1.6_kernel_preprocess.patch)
sha256sums=('551ce7506f04a51f59c262cb47dd03db5db1d4a0d3cd7f43d7b4dbb10ddd94cc'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP')

prepare() {
  cd "$srcdir"/luxrender-luxrays-$_pkgver

  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-no-samples.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-no-pyluxcore.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-no-division-by-zero-pdf-clamp.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-do-not-crash-on-kernel-build-failure.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-catch-opencl-errors-on-platform-listing.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-catch-opencl-errors-on-device-listing.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-decode-more-opencl-errors.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-optionally-print-opencl-build-log.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-optionally-prefer-bvh.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-optionally-disable-image.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-fix-build-with-system-opencl-cmake.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-do-not-ship-cmake-files.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-link-slg4-with-opencl.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-enable-slg4-build.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-use-simde-on-non-i686.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-fix-luxcorerender-website-url.patch"
  patch -p1 --no-backup-if-mismatch -i $srcdir/luxrays-after-001-clhpp.patch
  patch -p1 --no-backup-if-mismatch -i $srcdir/luxrays-after-002-embree3.patch
  patch -p1 --no-backup-if-mismatch -i $srcdir/"luxmark3-luxcore-use-ecm-for-openexr.patch"
  # To solve lexing error for ninja
  patch -p1 --no-backup-if-mismatch -i $srcdir/luxrays-1.6_kernel_preprocess.patch
}

build() {
  cd "$srcdir"/luxrender-luxrays-$_pkgver

  export PKG_CONFIG_PATH=/usr/lib/openexr2/lib/pkgconfig

  cmake -G Ninja . \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_SKIP_RPATH=ON \
    -DLUXRAYS_DISABLE_OPENCL=OFF \
    -DCMAKE_C_FLAGS="-pthread -lglut" \
    -DCMAKE_CXX_FLAGS="-std=c++11 -Wno-narrowing -pthread -lglut" \
    -DCMAKE_EXE_LINKER_FLAGS="-pthread -lglut" \
    -DOPENIMAGEIO_ROOT_DIR=/usr/lib/openimageio1 \
    -DCMAKE_VERBOSE_MAKEFILE=ON

  ninja
}

package() {
  cd "$srcdir"/luxrender-luxrays-$_pkgver

  install -d -m755 "$pkgdir"/usr/{bin,include,lib}
  install -m755 bin/* "$pkgdir"/usr/bin
  install -m644 lib/* "$pkgdir"/usr/lib
  cp -a include "$pkgdir"/usr
} 
openSUSE Build Service is sponsored by