summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorbartus2020-05-07 01:31:58 +0200
committerbartus2020-05-07 01:48:28 +0200
commitd9cd14763a25781fd97826577403acd08ea92a05 (patch)
tree4c830a08661799841795ae02cab26920a17753a1
parentf7944e409dd85fa0a13dadd363df62256f46a092 (diff)
downloadaur-d9cd14763a25781fd97826577403acd08ea92a05.tar.gz
Refactor, add embree support.
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD137
-rw-r--r--addon_path.patch16
-rw-r--r--embree.patch43
4 files changed, 125 insertions, 79 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 32623b722e7a..99c0cad6ffc8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,17 +1,18 @@
pkgbase = blender-functions-git
pkgdesc = Development version of Blenders functions branch
- pkgver = 2.83.r95931.gbeed795e5aa
+ pkgver = 2.83.r97300.g6692ca602ca
pkgrel = 1
url = https://blender.org/
arch = i686
arch = x86_64
license = GPL
+ makedepends = ninja
makedepends = git
makedepends = cmake
makedepends = boost
makedepends = mesa
makedepends = llvm
- makedepends = ninja
+ depends = embree
depends = alembic
depends = libgl
depends = python
@@ -30,6 +31,7 @@ pkgbase = blender-functions-git
depends = openshadinglanguage
depends = libtiff
depends = libpng
+ depends = openimagedenoise
optdepends = cuda: CUDA support in Cycles
provides = blender-functions
conflicts = blender-functions
@@ -40,6 +42,7 @@ pkgbase = blender-functions-git
source = blender-dev-tools.git::git://git.blender.org/blender-dev-tools.git
source = SelectCudaComputeArch.patch
source = addon_path.patch
+ source = embree.patch
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
@@ -47,6 +50,7 @@ pkgbase = blender-functions-git
sha256sums = SKIP
sha256sums = 66b9bf3db441f35119ef0eb5f855142f2e773e8002ac0216e056bcc6f8ac409c
sha256sums = 81e0047ba48662ee0ec1da1ffd427641305a0edc68c7913da9460ae4c1fefe72
+ sha256sums = 42afe119529a5350034a489225958112bf4b84bdee38757a932e5caaa9bd5ed4
pkgname = blender-functions-git
diff --git a/PKGBUILD b/PKGBUILD
index 58e5478f5c4a..8481bceca506 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,33 +1,39 @@
+#!/bin/hint/bash
# Maintainer : bartus <arch-user-repoᘓbartus.33mail.com>
-# shellcheck disable=SC2034,SC2154,SC2164,SC2191
-
-# 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) # Travis memory limit is not enough to build for arch 3.x.
+# shellcheck disable=SC2034,SC2154 # allow unused/unset variables
+# shellcheck disable=SC2191 # preserve current _CMAKE_FLAGS initialization.
# Configuration.
_branch="functions"
-_sufix=${_branch}
-_fragment="#branch=${_branch}"
+_suffix=${_branch}
+_fragment=${FRAGMENT:-#branch=${_branch}}
+[[ -v CUDA_ARCH ]] && _cuda_capability=${CUDA_ARCH}
+
+#some extra, unofficially supported stuff goes here:
+((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.
+_CMAKE_FLAGS+=( -DWITH_ALEMBIC_HDF5=ON )
+((DISABLE_EMBREE)) || {
+ _CMAKE_FLAGS+=( -DWITH_CYCLES_EMBREE=ON )
+ depends+=(embree)
+}
+((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-${_sufix}-git
+pkgname=blender-${_suffix}-git
pkgver=2.83.r97300.g6692ca602ca
_blenver=${pkgver:0:4}
pkgrel=1
pkgdesc="Development version of Blenders ${_branch} branch"
arch=('i686' 'x86_64')
url="https://blender.org/"
-depends=('alembic' 'libgl' 'python' 'python-numpy' 'openjpeg2'
+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')
-provides=("blender-${_sufix}")
-conflicts=("blender-${_sufix}")
-#options=(!makeflags)
+depends+=('openimagedenoise')
+makedepends+=('git' 'cmake' 'boost' 'mesa' 'llvm')
+provides=("blender-${_suffix}")
+conflicts=("blender-${_suffix}")
license=('GPL')
# 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
@@ -41,6 +47,7 @@ source=("git://git.blender.org/blender.git${_fragment}"
'blender-dev-tools.git::git://git.blender.org/blender-dev-tools.git'
SelectCudaComputeArch.patch
addon_path.patch
+ embree.patch #add missing embree link.
)
sha256sums=('SKIP'
'SKIP'
@@ -48,103 +55,95 @@ sha256sums=('SKIP'
'SKIP'
'SKIP'
'66b9bf3db441f35119ef0eb5f855142f2e773e8002ac0216e056bcc6f8ac409c'
- '81e0047ba48662ee0ec1da1ffd427641305a0edc68c7913da9460ae4c1fefe72')
+ 'ff05a19c9ff8aa3622b7d31f86c6218ac1a3ac06ad1a7cfd7e0587f623b3bd2f'
+ '42afe119529a5350034a489225958112bf4b84bdee38757a932e5caaa9bd5ed4')
pkgver() {
- cd "$srcdir/blender"
- printf "%s.r%s.g%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 [[ ! -v _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
- if [[ -v _sufix ]]; then
- git apply -v <(sed "s/@@_sufix@@/${_sufix}/g" "${srcdir}/addon_path.patch")
+ if [[ -v _suffix ]]; then
+ git -C "$srcdir/blender" apply -v <(sed "s/@@_suffix@@/${_suffix}/g" "${srcdir}/addon_path.patch")
fi
+ ((DISABLE_EMBREE)) || git -C "$srcdir/blender" apply -v "${srcdir}"/embree.patch
}
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
- if pacman -Qq cuda 2>&- ; then
- _EXTRAOPTS=( -DWITH_CYCLES_CUDA_BINARIES=ON \
- -DCUDA_TOOLKIT_ROOT_DIR=/opt/cuda )
+ _CUDA_PKG=`pacman -Qq cuda 2>/dev/null` || true
+ if [ "$_CUDA_PKG" != "" ] && ! ((DISABLE_CUDA)) ; 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
- _EXTRAOPTS+=( -DCYCLES_CUDA_BINARIES_ARCH="$(IFS=';'; echo "${_cuda_capability[*]}";)" )
+ _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" \
+ 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_PLAYER=OFF \
- -DWITH_ALEMBIC=ON \
- -DWITH_OPENCOLORIO=ON \
- -DWITH_FFTW3=ON \
-DWITH_SYSTEM_GLEW=ON \
- -DWITH_CODEC_FFMPEG=ON \
-DWITH_PYTHON_INSTALL=OFF \
-DPYTHON_VERSION="${_pyver}" \
- -DWITH_MOD_OCEANSIM=ON \
- -DWITH_CYCLES_OPENSUBDIV=ON \
- -DWITH_CYCLES_OSL=ON \
- -DWITH_LLVM=ON \
- -DWITH_IMAGE_OPENEXR=ON \
- -DWITH_OPENSUBDIV=ON \
- -DWITH_OPENVDB=ON \
- -DWITH_OPENVDB_BLOSC=ON \
- -DWITH_OPENCOLLADA=ON \
- "${_EXTRAOPTS[@]}"
+ "${_CMAKE_FLAGS[@]}"
export NINJA_STATUS="[%p | %f<%r<%u | %cbps ] "
# shellcheck disable=SC2086 # allow MAKEFLAGS to split when multiple flags provided.
- if ((DISABLE_NINJA)); then make; else ninja ${MAKEFLAGS:--j1}; fi
+ if ((DISABLE_NINJA)); then make -C "$srcdir/build" ; else ninja -C "$srcdir/build" ${MAKEFLAGS:--j1}; fi
}
package() {
- cd "$srcdir/blender-build"
export DESTDIR="$pkgdir"
- if ((DISABLE_NINJA)); then make install; else ninja install; fi
+ if ((DISABLE_NINJA)); then make -C "$srcdir/build" install; else ninja -C "$srcdir/build" install; fi
- if [[ -v _sufix ]]; then
- msg "add -${_sufix} sufix to desktop shortcut"
- sed -i "s/=blender/=blender-${_sufix}/g" "${pkgdir}/usr/share/applications/blender.desktop"
- sed -i "s/=Blender/=Blender-${_sufix}/g" "${pkgdir}/usr/share/applications/blender.desktop"
- mv "${pkgdir}/usr/share/applications/blender.desktop" "${pkgdir}/usr/share/applications/blender-${_sufix}.desktop"
+ 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 -${_sufix} sufix to binaries"
- mv "${pkgdir}/usr/bin/blender" "${pkgdir}/usr/bin/blender-${_sufix}"
- mv "${pkgdir}/usr/bin/blender-thumbnailer.py" "${pkgdir}/usr/bin/blender-${_sufix}-thumbnailer.py"
+ 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-${_sufix}"
- mv "${pkgdir}/usr/share/doc/blender" "${pkgdir}/usr/share/doc/blender-${_sufix}"
+ msg "mv doc/blender to doc/blender-${_suffix}"
+ mv "${pkgdir}/usr/share/doc/blender" "${pkgdir}/usr/share/doc/blender-${_suffix}"
- msg "add -${_sufix} sufix to man page"
- mv "${pkgdir}/usr/share/man/man1/blender.1" "${pkgdir}/usr/share/man/man1/blender-${_sufix}.1"
+ 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 -${_sufix} sufix to all icons"
+ 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%.*}-${_sufix}.${icon##/*.}"
+ mv "$icon" "${icon%.*}-${_suffix}.${icon##/*.}"
done < <(find "${pkgdir}/usr/share/icons" -type f)
- fi
- if [[ -e "$pkgdir/usr/share/blender/${_blenver}${_sufix:+_$_sufix}/scripts/addons/cycles/lib/" ]] ; then
+ if [[ -e "$pkgdir/usr/share/blender/${_blenver}${_suffix:+_$_suffix}/scripts/addons/cycles/lib/" ]] ; then
# make sure the cuda kernels are not stripped
- chmod 444 "$pkgdir"/usr/share/blender/${_blenver}${_sufix:+_$_sufix}/scripts/addons/cycles/lib/*
+ chmod 444 "$pkgdir"/usr/share/blender/${_blenver}${_suffix:+_$_suffix}/scripts/addons/cycles/lib/*
fi
}
# vim:set sw=2 ts=2 et:
diff --git a/addon_path.patch b/addon_path.patch
index ba166d1a715b..c661f0d5cc80 100644
--- a/addon_path.patch
+++ b/addon_path.patch
@@ -7,7 +7,7 @@ index 8fd6aee28da..99d61882451 100644
/* no prefix assumes a portable build which only uses bundled scripts */
if (static_path) {
- static string system_path = string(static_path) + "/blender/" + versionstr;
-+ static string system_path = string(static_path) + "/blender/" + versionstr + "_@@_sufix@@";
++ static string system_path = string(static_path) + "/blender/" + versionstr + "_@@_suffix@@";
return (GHOST_TUns8 *)system_path.c_str();
}
@@ -16,7 +16,7 @@ index 8fd6aee28da..99d61882451 100644
if (home) {
- user_path = string(home) + "/.blender/" + versionstr;
-+ user_path = string(home) + "/.blender/" + versionstr + "_@@_sufix@@";
++ user_path = string(home) + "/.blender/" + versionstr + "_@@_suffix@@";
}
else {
return NULL;
@@ -25,7 +25,7 @@ index 8fd6aee28da..99d61882451 100644
if (home) {
- user_path = string(home) + "/blender/" + versionstr;
-+ user_path = string(home) + "/blender/" + versionstr + "_@@_sufix@@";
++ user_path = string(home) + "/blender/" + versionstr + "_@@_suffix@@";
}
else {
home = getenv("HOME");
@@ -34,7 +34,7 @@ index 8fd6aee28da..99d61882451 100644
home = getpwuid(getuid())->pw_dir;
- user_path = string(home) + "/.config/blender/" + versionstr;
-+ user_path = string(home) + "/.config/blender/" + versionstr + "_@@_sufix@@";
++ user_path = string(home) + "/.config/blender/" + versionstr + "_@@_suffix@@";
}
}
@@ -47,18 +47,18 @@ index 8fb04c320a0..3102752ec97 100644
if(WITH_PYTHON_MODULE)
if(WITH_INSTALL_PORTABLE)
- set(TARGETDIR_VER ${BLENDER_VERSION})
-+ set(TARGETDIR_VER ${BLENDER_VERSION}_@@_sufix@@)
++ set(TARGETDIR_VER ${BLENDER_VERSION}_@@_suffix@@)
else()
- set(TARGETDIR_VER ${PYTHON_SITE_PACKAGES}/${BLENDER_VERSION})
-+ set(TARGETDIR_VER ${PYTHON_SITE_PACKAGES}/${BLENDER_VERSION}_@@_sufix@@)
++ set(TARGETDIR_VER ${PYTHON_SITE_PACKAGES}/${BLENDER_VERSION}_@@_suffix@@)
endif()
else()
if(WITH_INSTALL_PORTABLE)
- set(TARGETDIR_VER ${BLENDER_VERSION})
-+ set(TARGETDIR_VER ${BLENDER_VERSION}_@@_sufix@@)
++ set(TARGETDIR_VER ${BLENDER_VERSION}_@@_suffix@@)
else()
- set(TARGETDIR_VER share/blender/${BLENDER_VERSION})
-+ set(TARGETDIR_VER share/blender/${BLENDER_VERSION}_@@_sufix@@)
++ set(TARGETDIR_VER share/blender/${BLENDER_VERSION}_@@_suffix@@)
endif()
endif()
diff --git a/embree.patch b/embree.patch
new file mode 100644
index 000000000000..bed0b39e744c
--- /dev/null
+++ b/embree.patch
@@ -0,0 +1,43 @@
+diff --git a/intern/cycles/blender/CMakeLists.txt b/intern/cycles/blender/CMakeLists.txt
+index d9a2ebf8571..f3b7d156024 100644
+--- a/intern/cycles/blender/CMakeLists.txt
++++ b/intern/cycles/blender/CMakeLists.txt
+@@ -66,6 +66,12 @@ if(WITH_CYCLES_LOGGING)
+ )
+ endif()
+
++if(WITH_CYCLES_EMBREE)
++ list(APPEND LIB
++ ${EMBREE_LIBRARIES}
++ )
++endif()
++
+ set(ADDON_FILES
+ addon/__init__.py
+ addon/engine.py
+diff --git a/build_files/cmake/Modules/FindEmbree.cmake b/build_files/cmake/Modules/FindEmbree.cmake
+index d9d525d4586..03b509a28f3 100644
+--- a/build_files/cmake/Modules/FindEmbree.cmake
++++ b/build_files/cmake/Modules/FindEmbree.cmake
+@@ -72,7 +72,7 @@ ENDFOREACH()
+
+ FIND_LIBRARY(EMBREE_LIBRARY
+ NAMES
+- libembree3
++ embree3
+ HINTS
+ ${_embree_SEARCH_DIRS}
+ PATH_SUFFIXES
+@@ -83,10 +83,10 @@ FIND_LIBRARY(EMBREE_LIBRARY
+ # all listed variables are TRUE
+ INCLUDE(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(EMBREE DEFAULT_MSG
+- _embree_LIBRARIES EMBREE_INCLUDE_DIR)
++ EMBREE_LIBRARY EMBREE_INCLUDE_DIR)
+
+ IF(EMBREE_FOUND)
+- SET(EMBREE_LIBRARIES ${_embree_LIBRARIES})
++ SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY})
+ SET(EMBREE_INCLUDE_DIRS ${EMBREE_INCLUDE_DIR})
+ ENDIF(EMBREE_FOUND)
+