Files
haikuports/media-gfx/blender/blender-2.79b.recipe
2018-05-07 14:05:52 -04:00

316 lines
9.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SUMMARY="3D Creation/Animation/Publishing System"
DESCRIPTION="Blender is the free and open source 3D creation suite. It \
supports the entirety of the 3D pipeline—modeling, rigging, animation, \
simulation, rendering, compositing and motion tracking, even video editing \
and game creation.
Advanced users employ Blenders API for Python scripting to customize the \
application and write specialized tools; often these are included in Blenders \
future releases. Blender is well suited to individuals and small studios who \
benefit from its unified pipeline and responsive development process."
HOMEPAGE="http://www.blender.org/"
COPYRIGHT="2002-2017 Blender Foundation"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="http://download.blender.org/source/blender-$portVersion.tar.gz"
CHECKSUM_SHA256="4c944c304a49e68ac687ea06f5758204def049b66dc211e1cffa1857716393bc"
PATCHES="blender-$portVersion.patchset"
ADDITIONAL_FILES="blender.rdef.in"
ARCHITECTURES="!x86_gcc2 ?x86 x86_64"
SECONDARY_ARCHITECTURES="?x86"
PYTHON_VERSION="3.6"
PROVIDES="
blender$secondaryArchSuffix = $portVersion
cmd:blender
# cmd:blenderplayer
# cmd:blender_thumbnailer.py
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libalembic$secondaryArchSuffix
# lib:libavcodec$secondaryArchSuffix
# lib:libavdevice$secondaryArchSuffix
lib:libboost_atomic$secondaryArchSuffix
lib:libboost_chrono$secondaryArchSuffix
lib:libboost_date_time$secondaryArchSuffix
lib:libboost_filesystem$secondaryArchSuffix
lib:libboost_locale$secondaryArchSuffix
lib:libboost_regex$secondaryArchSuffix
lib:libboost_system$secondaryArchSuffix
lib:libboost_thread$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libfftw3$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libgcc_s$secondaryArchSuffix
# lib:libgflags$secondaryArchSuffix
lib:libgl$secondaryArchSuffix
lib:libglew$secondaryArchSuffix
# lib:libglog$secondaryArchSuffix
lib:libglu$secondaryArchSuffix
lib:libgomp$secondaryArchSuffix
# lib:libgtest$secondaryArchSuffix
lib:libhalf$secondaryArchSuffix
lib:libhdf5$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libiex_2_2$secondaryArchSuffix
lib:libilmimf_2_2$secondaryArchSuffix
lib:libilmthread_2_2$secondaryArchSuffix
lib:libimath_2_2$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libLLVM_5.0$secondaryArchSuffix
lib:liblzma$secondaryArchSuffix
lib:liblzo2$secondaryArchSuffix
lib:libopenal$secondaryArchSuffix
lib:libopencolladabaseutils$secondaryArchSuffix
lib:libopencolorio$secondaryArchSuffix
lib:libopenimageio$secondaryArchSuffix
# lib:libopenjp2$secondaryArchSuffix
lib:libopenvdb$secondaryArchSuffix
lib:libosdCPU$secondaryArchSuffix
lib:libosdGPU$secondaryArchSuffix
lib:liboslcomp$secondaryArchSuffix
lib:libpcre$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libpugixml$secondaryArchSuffix
lib:libpython${PYTHON_VERSION}m
lib:libsdl2_2.0$secondaryArchSuffix
lib:libsndfile$secondaryArchSuffix
lib:libtbb$secondaryArchSuffix
lib:libtinyxml$secondaryArchSuffix
lib:libtiff$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libyaml_cpp$secondaryArchSuffix
lib:libz$secondaryArchSuffix
python3_numpy
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
llvm$secondaryArchSuffix
devel:eigen$secondaryArchSuffix
devel:libalembic$secondaryArchSuffix
# devel:libavcodec$secondaryArchSuffix
# devel:libavdevice$secondaryArchSuffix
devel:libboost_atomic$secondaryArchSuffix
devel:libboost_chrono$secondaryArchSuffix
devel:libboost_date_time$secondaryArchSuffix
devel:libboost_filesystem$secondaryArchSuffix
devel:libboost_locale$secondaryArchSuffix
devel:libboost_regex$secondaryArchSuffix
devel:libboost_system$secondaryArchSuffix
devel:libboost_thread$secondaryArchSuffix
devel:libexecinfo$secondaryArchSuffix
devel:libfftw3$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
# devel:libgflags$secondaryArchSuffix
devel:libgl$secondaryArchSuffix
devel:libglew$secondaryArchSuffix
# devel:libglog$secondaryArchSuffix
devel:libglu$secondaryArchSuffix
devel:libgomp$secondaryArchSuffix
# devel:libgtest$secondaryArchSuffix
devel:libhalf$secondaryArchSuffix
devel:libhdf5$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libiex_2_2$secondaryArchSuffix
devel:libilmimf_2_2$secondaryArchSuffix
devel:libilmthread_2_2$secondaryArchSuffix
devel:libimath_2_2$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:liblzma$secondaryArchSuffix
devel:liblzo2$secondaryArchSuffix
devel:libopenal$secondaryArchSuffix
devel:libopencolladabaseutils$secondaryArchSuffix
devel:libopencolorio$secondaryArchSuffix
devel:libopenimageio$secondaryArchSuffix
# devel:libopenjp2$secondaryArchSuffix
devel:libopenvdb$secondaryArchSuffix
devel:libosdCPU$secondaryArchSuffix
devel:libosdGPU$secondaryArchSuffix
devel:liboslcomp$secondaryArchSuffix
devel:libpcre$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libpugixml$secondaryArchSuffix
devel:libpython${PYTHON_VERSION}m
devel:libsdl2_2.0$secondaryArchSuffix
devel:libsndfile$secondaryArchSuffix
devel:libtbb$secondaryArchSuffix
devel:libtinyxml$secondaryArchSuffix
devel:libtiff$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libyaml_cpp$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:git
cmd:gcc$secondaryArchSuffix
cmd:find
cmd:ld$secondaryArchSuffix
cmd:make
cmd:python${PYTHON_VERSION}
cmd:sed
cmd:strip
llvm$secondaryArchSuffix
python3_numpy
#python3_requests #maybe later
"
defineDebugInfoPackage blender$secondaryArchSuffix \
$appsDir/Blender/Blender
# $binDir/cycles
BUILD()
{
PY_VENDOR_DIR=`finddir B_SYSTEM_LIB_DIRECTORY`/python${PYTHON_VERSION}/vendor-packages
NUMPY_FOLDER=`find $PY_VENDOR_DIR -maxdepth 1 -type d |grep numpy`
PORT_SUBFOLDER=`echo $portVersion | sed 's/.$//'`
# OpenCOLLADA workaround
COLLADA_HEADERS="`finddir B_SYSTEM_HEADERS_DIRECTORY`/opencollada"
COLLADA_INC_FLAGS="-I$COLLADA_HEADERS/COLLADABaseUtils \
-I$COLLADA_HEADERS/COLLADAFramework \
-I$COLLADA_HEADERS/COLLADASaxFrameworkLoader \
-I$COLLADA_HEADERS/COLLADAStreamWriter \
-I$COLLADA_HEADERS/GeneratedSaxParser"
# Haiku specific settings
BLENDER_PLATFORM_SPECIFIC="-DCMAKE_INSTALL_PREFIX:PATH=$appsDir/Blender \
-DPYTHON_VERSION=${PYTHON_VERSION} \
-DPYTHON_INCLUDE_DIR=`finddir B_SYSTEM_HEADERS_DIRECTORY`/python${PYTHON_VERSION}m/ \
-DPYTHON_LIBRARY=`finddir B_SYSTEM_LIB_DIRECTORY`/libpython${PYTHON_VERSION}m.so.1.0 \
-DPYTHON_EXECUTABLE=/bin/python${PYTHON_VERSION} \
-DPYTHON_NUMPY_PATH=$NUMPY_FOLDER \
-DWITH_PYTHON_INSTALL_NUMPY=OFF \
-DWITH_PYTHON_INSTALL_REQUESTS=OFF \
-DWITH_GHOST_SDL=ON \
-Wno-dev"
# Release settings breaks build on Haiku
BLENDER_BUGOUS="-DWITH_BOOST=ON \
-DWITH_CYCLES_NATIVE_ONLY=ON \
-DWITH_CYCLES_LOGGING=OFF \
-DWITH_CODEC_FFMPEG=OFF \
-DWITH_GAMEENGINE_DECKLINK=OFF \
-DWITH_GTESTS=OFF \
-DWITH_LLVM=ON \
-DWITH_OPENIMAGEIO=ON \
-DWITH_SYSTEM_EIGEN3=ON \
-DWITH_SYSTEM_GFLAGS=OFF \
-DWITH_SYSTEM_GLOG=OFF \
-DWITH_SYSTEM_OPENJPEG=OFF \
-DWITH_SYSTEM_LZO=ON"
# Missing deps on Haiku
BLENDER_MISSING="-DWITH_JACK=OFF \
-DWITH_MEM_JEMALLOC=OFF \
-DWITH_INPUT_NDOF=OFF"
# Release build settings
BLENDER_RELEASE="-DWITH_ALEMBIC=ON \
-DWITH_BUILDINFO=ON \
-DWITH_BULLET=ON \
-DWITH_CODEC_AVI=ON \
-DWITH_CODEC_SNDFILE=ON \
-DWITH_CYCLES=ON \
-DWITH_CYCLES_OPENSUBDIV=ON \
-DWITH_CYCLES_OSL=ON \
-DWITH_FFTW3=ON \
-DWITH_LIBMV=ON \
-DWITH_LIBMV_SCHUR_SPECIALIZATIONS=ON \
-DWITH_GAMEENGINE=ON \
-DWITH_COMPOSITOR=ON \
-DWITH_FREESTYLE=ON \
-DWITH_GHOST_XDND=ON \
-DWITH_IK_SOLVER=ON \
-DWITH_IK_ITASC=ON \
-DWITH_IMAGE_CINEON=ON \
-DWITH_IMAGE_DDS=ON \
-DWITH_IMAGE_FRAMESERVER=ON \
-DWITH_IMAGE_HDR=ON \
-DWITH_IMAGE_OPENEXR=ON \
-DWITH_IMAGE_TIFF=ON \
-DWITH_INTERNATIONAL=ON \
-DWITH_LZMA=ON \
-DWITH_LZO=ON \
-DWITH_MOD_BOOLEAN=ON \
-DWITH_MOD_FLUID=ON \
-DWITH_MOD_REMESH=ON \
-DWITH_MOD_SMOKE=ON \
-DWITH_MOD_OCEANSIM=ON \
-DWITH_AUDASPACE=ON \
-DWITH_OPENAL=ON \
-DWITH_OPENCOLLADA=ON \
-DWITH_OPENCOLORIO=ON \
-DWITH_OPENMP=ON \
-DWITH_OPENVDB=ON \
-DWITH_OPENVDB_BLOSC=ON \
-DWITH_PYTHON_INSTALL=ON \
-DWITH_RAYOPTIMIZATION=ON \
-DWITH_SDL=ON \
-DWITH_PLAYER=OFF \
-DWITH_OPENSUBDIV=ON"
# Extra CXX Flags
BLENDER_CXX="-DBOOST_NO_CXX11_CONSTEXPR \
-std=c++11 $COLLADA_INC_FLAGS"
mkdir -p build_haiku
cd build_haiku
cmake .. \
$BLENDER_PLATFORM_SPECIFIC \
$BLENDER_BUGOUS \
$BLENDER_MISSING \
$BLENDER_RELEASE \
-DCMAKE_CXX_FLAGS="$BLENDER_CXX"
make $jobArgs
}
INSTALL()
{
cd build_haiku
make install $jobArgs
mv $appsDir/Blender/blender $appsDir/Blender/Blender
strip $appsDir/Blender/Blender
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2 | sed 's/[a-z]*//g'`"
local MINOR="`echo 0`"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
$portDir/additional-files/blender.rdef.in > blender.rdef
addResourcesToBinaries blender.rdef \
$appsDir/Blender/Blender
cd $appsDir/Blender
mkdir -p $docDir/blender
mv GPL-license.txt GPL3-license.txt \
LICENSE-bfont.ttf.txt jemalloc-license.txt \
Python-license.txt copyright.txt readme.html \
blender.svg ocio-license.txt LICENSE-bmonofont-i18n.ttf.txt \
LICENSE-droidsans.ttf.txt $docDir/blender
rm -rf blender.desktop
addAppDeskbarSymlink $appsDir/Blender/Blender Blender
}
TEST()
{
cd build_haiku
# The whole testcase is around 1GB and not included. Get it from here:
# svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests
# and put it in "work-2.xx/sources/lib"
make test
}