diff options
author | bartus | 2020-05-04 02:56:24 +0200 |
---|---|---|
committer | bartus | 2020-05-04 03:33:58 +0200 |
commit | a70cc33f4191d13036c801abf56fc6e5cdc47e32 (patch) | |
tree | 587e27931332a149495bc59e6d8840e77232bd3f /PKGBUILD | |
parent | de41018f24f6b7b7917aa34deae90eb4b652b358 (diff) | |
download | aur-a70cc33f4191d13036c801abf56fc6e5cdc47e32.tar.gz |
Refactor.
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 168 |
1 files changed, 97 insertions, 71 deletions
@@ -1,28 +1,45 @@ +#!/bin/hint/bash # Maintainer : bartus <arch-user-repoᘓbartus.33mail.com> -# shellcheck disable=SC2034 +# shellcheck disable=SC2034,SC2154 # allow unused/unset variables +# shellcheck disable=SC2191 # preserve current _CMAKE_FLAGS initialization. -#to enforce cuda verison uncomment this line and update value of sm_xx model accordingly +# To force cuda compute arch uncomment this line and update value of sm_xx model accordingly #_cuda_capability+=(sm_30 sm_35 sm_37) #_cuda_capability+=(sm_50 sm_52 sm_60 sm_61 sm_70 sm_75) -((TRAVIS)) && _cuda_capability+=(sm_50 sm_52 sm_60 sm_61 sm_70 sm_75) # suppress 3.x to prevent Travis build exceed time limit. +((TRAVIS)) && _cuda_capability+=(sm_50 sm_52 sm_60 sm_61 sm_70 sm_75) # Travis memory limit is not enough to build for arch 3.x. -pkgname=blender-2.82-git +# Configuration. _fragment="#branch=blender-v2.82-release" -pkgver=2.82.r92134.f8cdc5ac4c0 +#some extra, unofficially supported stuff goes here: +_CMAKE_FLAGS+=( -DWITH_ALEMBIC_HDF5=ON ) +((DISABLE_EMBREE)) || { + _CMAKE_FLAGS+=( -DWITH_CYCLES_EMBREE=ON ) + depends+=(embree) +} +((DISABLE_USD)) || { + _CMAKE_FLAGS+=( -DWITH_USD=ON + -DUSD_ROOT=/usr ) + depends+=( usd=19.11 ) +} +((DISABLE_NINJA)) || makedepends+=('ninja') +#shellcheck disable=SC2015 +((DISABLE_CUDA)) && optdepends+=('cuda: CUDA support in Cycles') || { makedepends+=('cuda') ; ((DISABLE_OPTIX)) || makedepends+=('optix>=7.0'); } + +pkgname=blender-2.82-git +pkgver=2.82.r92824.g375c7dc4caf pkgrel=1 -pkgdesc="Alpha version of Blender 2.82-release branch" +pkgdesc="Development version of Blender 2.8 branch" +changelog=blender.changelog arch=('i686' 'x86_64') url="https://blender.org/" -depends=('alembic' 'libgl' 'python' 'python-numpy' 'openjpeg' 'desktop-file-utils' 'hicolor-icon-theme' - 'ffmpeg' 'fftw' 'openal' 'freetype2' 'libxi' 'openimageio' 'opencolorio' 'openimagedenoise' +depends+=('alembic' 'libgl' 'python' 'python-numpy' 'openjpeg2' + 'ffmpeg' 'fftw' 'openal' 'freetype2' 'libxi' 'openimageio' 'opencolorio' 'openvdb' 'opencollada' 'opensubdiv' 'openshadinglanguage' 'libtiff' 'libpng') -makedepends=('git' 'cmake' 'boost' 'mesa' 'llvm') -((DISABLE_NINJA)) || makedepends+=('ninja') -((DISABLE_CUDA)) && optdepends=('cuda: CUDA support in Cycles') || { makedepends+=('cuda') ; ((DISABLE_OPTIX)) || makedepends+=('optix>=7.0'); } +depends+=('openimagedenoise') +makedepends+=('git' 'cmake' 'boost' 'mesa' 'llvm') provides=("blender-${pkgver%%.r*}") conflicts=("blender-${pkgver%%.r*}") license=('GPL') -install=blender.install # NOTE: the source array has to be kept in sync with .gitmodules # the submodules has to be stored in path ending with git to match # the path in .gitmodules. @@ -33,99 +50,108 @@ source=("git://git.blender.org/blender.git${_fragment}" 'blender-addons-contrib.git::git://git.blender.org/blender-addons-contrib.git' 'blender-translations.git::git://git.blender.org/blender-translations.git' 'blender-dev-tools.git::git://git.blender.org/blender-dev-tools.git' - blender-2.8.desktop SelectCudaComputeArch.patch + usd_python.patch #add missing python headers when building against python enabled usd. + embree.patch #add missing embree link. + addon_path.patch ) -md5sums=('SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'cd108dca1c77607c6a7cc45aa284ea97' - '4441d9a6db38b85b7dc5c3c9e6872951') +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + '66b9bf3db441f35119ef0eb5f855142f2e773e8002ac0216e056bcc6f8ac409c' + '12bd6db5c1fe14244fd7321e3d740941a36aa545ec21b02325e7553c9214778a' + '42afe119529a5350034a489225958112bf4b84bdee38757a932e5caaa9bd5ed4' + '81e0047ba48662ee0ec1da1ffd427641305a0edc68c7913da9460ae4c1fefe72') pkgver() { - cd "$srcdir/blender" - printf "%s.r%s.%s" "$(grep -Po "BLENDER_VERSION \K[0-9]{3}" source/blender/blenkernel/BKE_blender_version.h|sed 's/./&./1')" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + blender_version=$(grep -Po "BLENDER_VERSION \K[0-9]{3}" "$srcdir"/blender/source/blender/blenkernel/BKE_blender_version.h) + printf "%d.%d.r%s.g%s" \ + $((blender_version/100)) \ + $((blender_version%100)) \ + "$(git -C "$srcdir/blender" rev-list --count HEAD)" \ + "$(git -C "$srcdir/blender" rev-parse --short HEAD)" } prepare() { - cd "$srcdir/blender" # update the submodules - git submodule update --init --recursive --remote - if [ -z "$_cuda_capability" ] && grep -q nvidia <(lsmod); then - git apply -v ${srcdir}/SelectCudaComputeArch.patch + git -C "$srcdir/blender" submodule update --init --recursive --remote + if [ ! -v _cuda_capability ] && grep -q nvidia <(lsmod); then + git -C "$srcdir/blender" apply -v "${srcdir}"/SelectCudaComputeArch.patch + fi + ((DISABLE_USD)) || git -C "$srcdir/blender" apply -v "${srcdir}"/usd_python.patch + ((DISABLE_EMBREE)) || git -C "$srcdir/blender" apply -v "${srcdir}"/embree.patch + if [[ -v _sufix ]]; then + git apply -v <(sed "s/@@_sufix@@/${_sufix}/g" "${srcdir}/addon_path.patch") fi } build() { - mkdir -p "$srcdir/blender-build" - cd "$srcdir/blender-build" - _pyver=$(python -c "from sys import version_info; print(\"%d.%d\" % (version_info[0],version_info[1]))") msg "python version detected: ${_pyver}" # determine whether we can precompile CUDA kernels - _CUDA_PKG=`pacman -Qq cuda 2>/dev/null` || true - if [ "$_CUDA_PKG" != "" ] && ! ((DISABLE_CUDA)) ; then - _EXTRAOPTS=( -DWITH_CYCLES_CUDA_BINARIES=ON - -DCUDA_TOOLKIT_ROOT_DIR=/opt/cuda - -DOPTIX_ROOT_DIR=/opt/optix ) - if [ -v _cuda_capability ]; then - _EXTRAOPTS+=(-DCYCLES_CUDA_BINARIES_ARCH=$(IFS=';'; echo "${_cuda_capability[*]}";)) - fi - [ -f "/usr/lib/ccache/bin/nvcc-ccache" ] && _CMAKE_FLAGS+=( -DCUDA_NVCC_EXECUTABLE=/usr/lib/ccache/bin/nvcc-ccache ) - if _cuda_gcc=$(basename $(readlink /opt/cuda/bin/gcc)) ; then - [ -L "/usr/lib/ccache/bin/$_cuda_gcc" ] && _CMAKE_FLAGS+=( -DCUDA_HOST_COMPILER=/usr/lib/ccache/bin/$_cuda_gcc ) - fi + if pacman -Qq cuda 2>&- ; then + _CMAKE_FLAGS+=( -DWITH_CYCLES_CUDA_BINARIES=ON + -DCUDA_TOOLKIT_ROOT_DIR=/opt/cuda ) + ((DISABLE_OPTIX)) || _CMAKE_FLAGS+=( -DOPTIX_ROOT_DIR=/opt/optix ) + if [[ -v _cuda_capability ]]; then + _CMAKE_FLAGS+=( -DCYCLES_CUDA_BINARIES_ARCH="$(IFS=';'; echo "${_cuda_capability[*]}";)" ) + fi + [ -f "/usr/lib/ccache/bin/nvcc-ccache" ] && _CMAKE_FLAGS+=( -DCUDA_NVCC_EXECUTABLE=/usr/lib/ccache/bin/nvcc-ccache ) + if _cuda_gcc=$(basename "$(readlink /opt/cuda/bin/gcc)") ; then + [ -L "/usr/lib/ccache/bin/$_cuda_gcc" ] && _CMAKE_FLAGS+=( -DCUDA_HOST_COMPILER=/usr/lib/ccache/bin/"$_cuda_gcc" ) + fi fi ((DISABLE_NINJA)) && generator="Unix Makefiles" || generator="Ninja" - cmake -G "$generator" "$srcdir/blender" \ - -C${srcdir}/blender/build_files/cmake/config/blender_release.cmake \ + cmake -G "$generator" -S "$srcdir/blender" -B "$srcdir/build" \ + -C "${srcdir}/blender/build_files/cmake/config/blender_release.cmake" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_INSTALL_PORTABLE=OFF \ -DWITH_SYSTEM_GLEW=ON \ -DWITH_PYTHON_INSTALL=OFF \ - -DPYTHON_VERSION=${_pyver} \ - ${_EXTRAOPTS[@]} + -DPYTHON_VERSION="${_pyver}" \ + "${_CMAKE_FLAGS[@]}" export NINJA_STATUS="[%p | %f<%r<%u | %cbps ] " - ((DISABLE_NINJA)) && make || ninja $([ -v MAKEFLAGS ] || echo -j1) -d stats +# shellcheck disable=SC2086 # allow MAKEFLAGS to split when multiple flags provided. + if ((DISABLE_NINJA)); then make -C "$srcdir/build" ; else ninja -C "$srcdir/build" ${MAKEFLAGS:--j1}; fi } package() { - cd "$srcdir/blender-build" - ((DISABLE_NINJA)) && make install DESTDIR="$pkgdir" || DESTDIR="$pkgdir" ninja install - - msg "add -${pkgver%%.r*} sufix to desktop shortcut" - sed -i "s/=blender/=blender-${pkgver%%.r*}/g" ${pkgdir}/usr/share/applications/blender.desktop - sed -i "s/=Blender/=Blender-${pkgver%%.r*}/g" ${pkgdir}/usr/share/applications/blender.desktop - mv ${pkgdir}/usr/share/applications/blender.desktop ${pkgdir}/usr/share/applications/blender-${pkgver%%.r*}.desktop + _suffix=${pkgver%%.r*} + export DESTDIR="$pkgdir" + if ((DISABLE_NINJA)); then make -C "$srcdir/build" install; else ninja -C "$srcdir/build" install; fi + + msg "add -${_suffix} suffix to desktop shortcut" + sed -i "s/=blender/=blender-${_suffix}/g" "${pkgdir}/usr/share/applications/blender.desktop" + sed -i "s/=Blender/=Blender-${_suffix}/g" "${pkgdir}/usr/share/applications/blender.desktop" + mv "${pkgdir}/usr/share/applications/blender.desktop" "${pkgdir}/usr/share/applications/blender-${_suffix}.desktop" - msg "add -${pkgver%%.r*} sufix to binaries" - mv ${pkgdir}/usr/bin/blender ${pkgdir}/usr/bin/blender-${pkgver%%.r*} - mv ${pkgdir}/usr/bin/blender-thumbnailer.py ${pkgdir}/usr/bin/blender-${pkgver%%.r*}-thumbnailer.py -# mv ${pkgdir}/usr/bin/blenderplayer ${pkgdir}/usr/bin/blenderplayer-${pkgver%%.r*} + msg "add -${_suffix} suffix to binaries" + mv "${pkgdir}/usr/bin/blender" "${pkgdir}/usr/bin/blender-${_suffix}" + mv "${pkgdir}/usr/bin/blender-thumbnailer.py" "${pkgdir}/usr/bin/blender-${_suffix}-thumbnailer.py" - msg "mv doc/blender to doc/blender-${pkgver%%.r*}" - mv ${pkgdir}/usr/share/doc/blender ${pkgdir}/usr/share/doc/blender-${pkgver%%.r*} + msg "mv doc/blender to doc/blender-${_suffix}" + mv "${pkgdir}/usr/share/doc/blender" "${pkgdir}/usr/share/doc/blender-${_suffix}" - msg "add -${pkgver%%.r*} sufix to man page" - mv ${pkgdir}/usr/share/man/man1/blender.1 ${pkgdir}/usr/share/man/man1/blender-${pkgver%%.r*} + msg "add -${_suffix} suffix to man page" + mv "${pkgdir}/usr/share/man/man1/blender.1" "${pkgdir}/usr/share/man/man1/blender-${_suffix}.1" - msg "add -${pkgver%%.r*} sufix to all icons" - for icon in `find ${pkgdir}/usr/share/icons -type f` - do - # ${filename##/*.} extra extenssion from path - # ${filename%.*} extract filename form path - # look at bash "manipulatin string" - mv $icon ${icon%.*}-${pkgver%%.r*}.${icon##/*.} - done + msg "add -${_suffix} suffix to all icons" + while read -r icon + do + # ${filename##/*.} extra extenssion from path + # ${filename%.*} extract filename form path + # look at bash "manipulatin string" + mv "$icon" "${icon%.*}-${_suffix}.${icon##/*.}" + done < <(find "${pkgdir}/usr/share/icons" -type f) - if [ -e "$pkgdir"/usr/share/blender/*/scripts/addons/cycles/lib/ ] ; then + if [[ -e "$pkgdir/usr/share/blender/${_suffix}/scripts/addons/cycles/lib/" ]] ; then # make sure the cuda kernels are not stripped - chmod 444 "$pkgdir"/usr/share/blender/*/scripts/addons/cycles/lib/* + chmod 444 "$pkgdir"/usr/share/blender/${_suffix}/scripts/addons/cycles/lib/* fi } # vim:set sw=2 ts=2 et: |