blob: 1c597bcc3fe430e86535edc7c17a40ebded4a497 [file] [log] [blame]
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# To build with Qt-Creator:
# 1. Launch Qt-Creator with the env (set from cmd.exe):
# set "MINGW_PREFIX=C:/msys64/mingw64"
# set "ACLOCAL_PATH=%MINGW_PREFIX%/share/aclocal:/usr/share/aclocal"
# set "PKG_CONFIG_PATH=%MINGW_PREFIX%/lib/pkgconfig"
# set "PATH=%MINGW_PREFIX%/bin;%PATH%"
# 2. Specify the following as the CMake arguments:
# -DMINGW_LIBS=%MINGW_PREFIX% -DCMAKE_BUILD_TYPE=Debug -DWITH_SYSTEM_GLEW=ON -DWITH_SYSTEM_OPENJPEG=ON -DWITH_INSTALL_PORTABLE=OFF -DWITH_OPENCOLLADA=ON -DWITH_GAMEENGINE=ON -DWITH_RAYOPTIMIZATION=ON -DWITH_JACK=OFF -DWITH_PLAYER=ON -DWITH_CODEC_FFMPEG=ON -DWITH_CODEC_SNDFILE=ON -DWITH_CYCLES=ON -DWITH_CYCLES_CUDA_BINARIES=OFF -DWITH_CYCLES_OSL=ON -DWITH_FFTW3=ON -DWITH_MOD_OCEANSIM=ON -DPYTHON_VERSION=3.7 -DPYTHON_LIBPATH=%MINGW_PREFIX%/lib -DPYTHON_LIBRARY="python3.6m" -DPYTHON_INCLUDE_DIRS=/msys64/mingw64/include/python3.6m -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_INSTALL_NUMPY=OFF -DPYTHON_NUMPY_PATH=%MINGW_PREFIX%/lib/python3.6/site-packages -DCYCLES_OSL=%MINGW_PREFIX% -DWITH_IMAGE_REDCODE=ON -DWITH_OPENMP=ON -DWITH_LLVM=ON -DLLVM_STATIC=ON
_realname=blender
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.92.0
pkgrel=1
pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
license=('GPL')
# buid conflict with "${MINGW_PACKAGE_PREFIX}-glog"
url="https://www.blender.org"
depends=("${MINGW_PACKAGE_PREFIX}-alembic"
"${MINGW_PACKAGE_PREFIX}-audaspace"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-llvm"
"${MINGW_PACKAGE_PREFIX}-eigen3"
"${MINGW_PACKAGE_PREFIX}-embree"
"${MINGW_PACKAGE_PREFIX}-glew"
"${MINGW_PACKAGE_PREFIX}-gmp"
"${MINGW_PACKAGE_PREFIX}-ffmpeg"
"${MINGW_PACKAGE_PREFIX}-fftw"
"${MINGW_PACKAGE_PREFIX}-freetype"
#"${MINGW_PACKAGE_PREFIX}-gflags"
#"${MINGW_PACKAGE_PREFIX}-glog"
"${MINGW_PACKAGE_PREFIX}-hdf5"
"${MINGW_PACKAGE_PREFIX}-intel-tbb"
#"${MINGW_PACKAGE_PREFIX}-jemalloc"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-libsndfile"
"${MINGW_PACKAGE_PREFIX}-libtiff"
"${MINGW_PACKAGE_PREFIX}-lzo2"
"${MINGW_PACKAGE_PREFIX}-openal"
"${MINGW_PACKAGE_PREFIX}-opencollada"
"${MINGW_PACKAGE_PREFIX}-opencolorio"
"${MINGW_PACKAGE_PREFIX}-openexr"
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
$([[ "$CARCH" == "x86_64" ]] && echo "${MINGW_PACKAGE_PREFIX}-openimagedenoise")
"${MINGW_PACKAGE_PREFIX}-openimageio"
"${MINGW_PACKAGE_PREFIX}-openshadinglanguage"
#"${MINGW_PACKAGE_PREFIX}-opensubdiv"
#"${MINGW_PACKAGE_PREFIX}-openvdb" # there are missing export symbols in openvdb DLL
"${MINGW_PACKAGE_PREFIX}-openxr-sdk"
"${MINGW_PACKAGE_PREFIX}-pcre"
"${MINGW_PACKAGE_PREFIX}-potrace"
"${MINGW_PACKAGE_PREFIX}-pugixml"
"${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-python-numpy"
"${MINGW_PACKAGE_PREFIX}-SDL2"
"${MINGW_PACKAGE_PREFIX}-wintab-sdk"
"${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake")
#[[ $CARCH == x86_64 ]] && makedepends+=('cuda')
#optdepends=('cuda: cycles renderer cuda support')
options=(!strip staticlibs !debug)
install=blender-${CARCH}.install
source=(https://download.blender.org/source/${_realname}-${pkgver}.tar.xz
0001-mingw-buildsystem.patch
0002-fix-mingw-w64-definitions.patch
0004-fix-finding-glew.patch
0005-fix-define-syntax.patch
0006-mingw-DEBUG-libmv-avoid-too-many-sections.patch
0008-mingw-use-X11-like-path-layout.patch
0011-c++11-defines-__i386__-not-i386.patch
0012-re-enable-SSE-on-mingw-w64-i686.patch
0014-libstdc++-not-support-utf-stream.patch
0015-mingw-python-like-msvc.patch
0016-mingw-windres.patch
0017-find-pugixml.patch
0019-fix-casts.patch
0020-blendthumb-build.patch
0021-comctl32-v6-for-TaskDialogIndirect.patch
0022-find-llvm-convert-paths.patch
0023-link-errors.patch
0025-callback-function-prototype-fix.patch
0026-embree-shared.patch
0027-broken-32bit-support.patch)
sha256sums=('e791cfc403292383577c3c8ce2cd34e5aa2cd8da0a7483041049a1609ddb4595'
'9cc285a90050e51af66320357976b99ba7bc4ff918173d6d744869f78859813a'
'80bb43c71b8dcaa92c1fd8e611f311c8281382435882382db11b1b93267f5200'
'bcaa5b105463aa2dd9ab0f69ed4d422c23f9ae1a00a93e012c62113489f3db56'
'87036a005a817bce9edd5fb7f18ba3b7a0b8d309d6f1f9bb0f813c931d889c0d'
'cb603fd30a2e1421f653a187c3beb8e767d043a0d948213e884095cf0a27a411'
'10d5d251132d2fd19d44e15249e8f80692ba613dd77cc8b7526cfdd5faa5a19b'
'7fca0ae64741a9d9edcec3e933651111e8df6faaefa318581f2f94286cbf2911'
'f3e4a0cdec45a08df28f4d93dea508352df683d2fc8cf4b73f289db83eaf5d9e'
'6c3e47c8051345bd7c98acdc8ea592889f650498793fd5053728cec4ac659303'
'4ac8822d7620661f34327155b6d2d4491c3704dae5de025ced89830fe622f492'
'd5c1c5944ce49982633e5d65cdedfb64d0aaa3bd1c8ae4877c4dfc3e5ae03dac'
'5ce05eed73408045c78cd1be262393b2c6815b77dd2979964a8090e00a3ce5ac'
'47b3cc6712934fcc42fe0519c767ffac622562f32cb099a851952fe9b75f66b2'
'3b51fa1a7cf3d6afd201efffbbe61ab10ad2dfaba370d95b84214369ba551580'
'9f94a11de1502ffc20bb1336ebf2405e5d5b30eb34b45bb0eda1f67c3ccf67f0'
'8be734582b9980ad0a3c5a82c200767ce558084f18e3cca11947991a14b0d68a'
'db5999ba865a40b401244a0b540a8a76d377530152e19e59630891af6ec80534'
'61c0873f9c661f80eb189b7391a4c4c1eef2f7db4178177ce7ff7c47342384ae'
'86814ae1e91100b903fb65ceb61d67766ff6386e55ae892aa72278a6dd20f86a'
'55b6d79dbbfd1ac182c26b868c16867e42729a5537da29f3527e9017b19b41f6')
prepare() {
cd ${srcdir}/${_realname}-${pkgver}
[[ -d build_files/cmake/platform/platform_win32_mingw64.cmake ]] && rm build_files/cmake/platform/platform_win32_mingw64.cmake
patch -p1 -i "${srcdir}"/0001-mingw-buildsystem.patch
patch -p1 -i "${srcdir}"/0002-fix-mingw-w64-definitions.patch
patch -p1 -i "${srcdir}"/0004-fix-finding-glew.patch
patch -p1 -i "${srcdir}"/0005-fix-define-syntax.patch
patch -p1 -i "${srcdir}"/0006-mingw-DEBUG-libmv-avoid-too-many-sections.patch
patch -p1 -i "${srcdir}"/0008-mingw-use-X11-like-path-layout.patch
patch -p1 -i "${srcdir}"/0011-c++11-defines-__i386__-not-i386.patch
patch -p1 -i "${srcdir}"/0012-re-enable-SSE-on-mingw-w64-i686.patch
patch -p1 -i "${srcdir}"/0014-libstdc++-not-support-utf-stream.patch
patch -p1 -i "${srcdir}"/0015-mingw-python-like-msvc.patch
patch -p1 -i "${srcdir}"/0016-mingw-windres.patch
patch -p1 -i "${srcdir}"/0017-find-pugixml.patch
patch -p1 -i "${srcdir}"/0019-fix-casts.patch
patch -p1 -i "${srcdir}"/0020-blendthumb-build.patch
patch -p1 -i "${srcdir}"/0021-comctl32-v6-for-TaskDialogIndirect.patch
patch -p1 -i "${srcdir}"/0022-find-llvm-convert-paths.patch
patch -p1 -i "${srcdir}"/0023-link-errors.patch
patch -p1 -i "${srcdir}"/0025-callback-function-prototype-fix.patch
patch -p1 -i "${srcdir}"/0026-embree-shared.patch
patch -p1 -i "${srcdir}"/0027-broken-32bit-support.patch
}
build() {
[[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH}
mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
# i686 SSE is problematic with Cycles: https://developer.blender.org/T36316
# .. but commit:
# https://lists.blender.org/pipermail/bf-blender-cvs/2013-October/059705.html
# .. breaks the build:
# undefined reference to `ccl::kernel_cpu_sse2_path_trace` .. etc
# This is because it prevents the definition of __KERNEL_SSE2__ without having
# ensured WITH_CYCLES_OPTIMIZED_KERNEL_SSE2 is undefined. Let's hope that the
# bugs have been fixed as patch 0011 re-enables __KERNEL_SSE2__. If they're not
# fixed then we'll have to pass ENABLESSE2 to cmake instead, -DWITH_CPU_SSE being
# the correct one (probably!)
# [[ $CARCH == i686 ]] && ENABLESSE2="-DSUPPORT_SSE2_BUILD=OFF -DWITH_CPU_SSE=OFF"
declare -a _btype
if check_option "debug" "y"; then
_btype=Debug
else
_btype=Release
fi
export XR_OPENXR_SDK_ROOT_DIR=${MINGW_PREFIX}
export EMBREE_ROOT_DIR=${MINGW_PREFIX}
_pyver=$(${MINGW_PREFIX}/bin/python -c "import sys;sys.stdout.write('.'.join(map(str, sys.version_info[:2])))")
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake \
-G"MSYS Makefiles" \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DMINGW_LIBS=${MINGW_PREFIX} \
-DCMAKE_BUILD_TYPE=${_btype} \
-DWITH_SYSTEM_AUDASPACE=ON \
-DWITH_SYSTEM_GLEW=ON \
-DWITH_SYSTEM_GFLAGS=OFF \
-DWITH_SYSTEM_GLOG=OFF \
-DWITH_SYSTEM_BULLET=OFF \
-DWITH_SYSTEM_LZO=ON \
-DWITH_SYSTEM_EIGEN3=ON \
-DWITH_INSTALL_PORTABLE=OFF \
-DWITH_OPENCOLLADA=ON \
-DWITH_ALEMBIC=ON \
-DWITH_JACK=OFF \
-DWITH_CODEC_FFMPEG=ON \
-DWITH_CODEC_SNDFILE=ON \
-DWITH_CYCLES=ON \
-DWITH_CYCLES_STANDALONE=ON \
-DWITH_CYCLES_STANDALONE_GUI=ON \
-DWITH_CYCLES_CUDA_BINARIES=OFF \
-DWITH_CYCLES_OSL=ON \
-DWITH_FFTW3=ON \
-DWITH_OPENVDB=OFF \
-DWITH_MEM_JEMALLOC=OFF \
-DWITH_MOD_OCEANSIM=ON \
-DPython_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \
-DPython_ROOT_DIR=${MINGW_PREFIX} \
-DPython_FIND_REGISTRY=NEVER \
-DPYTHON_VERSION=${_pyver} \
-DPYTHON_LIBPATH=${MINGW_PREFIX}/lib \
-DPYTHON_LIBRARY=python${_pyver} \
-DPYTHON_INCLUDE_DIRS=${MINGW_PREFIX}/include/python${_pyver} \
-DWITH_PYTHON_INSTALL=OFF \
-DWITH_PYTHON_INSTALL_NUMPY=OFF \
-DCYCLES_OSL=${MINGW_PREFIX} \
-DWITH_OPENMP=ON \
-DWITH_LLVM=ON \
-DLLVM_STATIC=ON \
../${_realname}-${pkgver}
make
}
package() {
cd ${srcdir}/build-${CARCH}
make DESTDIR=${pkgdir} install
cp -r bin ${pkgdir}${MINGW_PREFIX}/
rm ${pkgdir}${MINGW_PREFIX}/bin/msgfmt.exe
${MINGW_PREFIX}/bin/python -m compileall "${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}"
${MINGW_PREFIX}/bin/python -m compileall \
${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}/scripts/startup \
${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}/scripts/modules \
${pkgdir}${MINGW_PREFIX}/share/blender/${pkgver}/scripts/addons
}